PHP实现远程下载文件到本地


Posted in PHP onMay 17, 2015

代码很简单就不多废话了,直接奉上:

<?php
echo httpcopy("http://www.baidu.com/img/baidu_sylogo1.gif");
 
function httpcopy($url, $file="", $timeout=60) {
  $file = empty($file) ? pathinfo($url,PATHINFO_BASENAME) : $file;
  $dir = pathinfo($file,PATHINFO_DIRNAME);
  !is_dir($dir) && @mkdir($dir,0755,true);
  $url = str_replace(" ","%20",$url);
 
  if(function_exists('curl_init')) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    $temp = curl_exec($ch);
    if(@file_put_contents($file, $temp) && !curl_error($ch)) {
      return $file;
    } else {
      return false;
    }
  } else {
    $opts = array(
      "http"=>array(
      "method"=>"GET",
      "header"=>"",
      "timeout"=>$timeout)
    );
    $context = stream_context_create($opts);
    if(@copy($url, $file, $context)) {
      //$http_response_header
      return $file;
    } else {
      return false;
    }
  }
}
?>

再来个远程下载文件到服务器

<form method="post">
<input name="url" size="50" />
<input name="submit" type="submit" />
</form>
< ?php
// maximum execution time in seconds
set_time_limit (24 * 60 * 60);
if (!isset($_POST['submit'])) die();
// folder to save downloaded files to. must end with slash
$destination_folder = 'temp/';
 
$url = $_POST['url'];
$newfname = $destination_folder . basename($url);
$file = fopen ($url, "rb");
if ($file) {
$newf = fopen ($newfname, "wb");
if ($newf)
while(!feof($file)) {
fwrite($newf, fread($file, 1024 * 8 ), 1024 * 8 );
}
}
if ($file) {
fclose($file);
}
if ($newf) {
fclose($newf);
}
?>

以上所述就是本文的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
PHP集成FCK的函数代码
Sep 27 PHP
php中取得URL的根域名的代码
Mar 23 PHP
redis 队列操作的例子(php)
Apr 12 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
Sep 30 PHP
php实现根据url自动生成缩略图的方法
Sep 23 PHP
getimagesize获取图片尺寸实例
Nov 15 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
Feb 10 PHP
10个对初学者非常有用的PHP技巧
Apr 06 PHP
PHP+Ajax异步带进度条上传文件实例
Nov 01 PHP
详解php协程知识点
Sep 21 PHP
PHP保留两位小数的几种方法
Jul 24 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 PHP
PHP生成json和xml类型接口数据格式
May 17 #PHP
php实现文本数据导入SQL SERVER
May 17 #PHP
php中PDO方式实现数据库的增删改查
May 17 #PHP
PHP图像处理类库及演示分享
May 17 #PHP
递归实现php数组转xml的代码分享
May 14 #PHP
php编写批量生成不重复的卡号密码代码
May 14 #PHP
php编写的抽奖程序中奖概率算法
May 14 #PHP
You might like
DedeCMS dede_channeltype表字段注释
2010/04/07 PHP
php通过记录IP来防止表单重复提交方法分析
2014/12/16 PHP
thinkphp3.x中session方法的用法分析
2016/05/20 PHP
PHP实现的登录,注册及密码修改功能分析
2016/11/25 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
2009/03/26 Javascript
JavaScript中几种常见排序算法小结
2011/02/22 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
2013/05/07 Javascript
JS+flash实现chrome和ie浏览器下同时可以复制粘贴
2013/09/22 Javascript
jquery的trigger和triggerHandler的区别示例介绍
2014/04/20 Javascript
AspNet中使用JQuery boxy插件的确认框
2015/05/20 Javascript
jQuery实现的左右移动焦点图效果
2016/01/14 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
JS构造函数与原型prototype的区别介绍
2016/07/04 Javascript
AngularJS入门教程之AngularJS 模板
2016/08/18 Javascript
详解JavaScript中this的指向问题
2017/01/20 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
2017/09/26 jQuery
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
2017/12/06 Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
2019/09/17 Javascript
vue中实现回车键登录功能
2020/02/19 Javascript
ES5新增数组的实现方法
2020/05/12 Javascript
python中的多线程实例教程
2014/08/27 Python
Python代码解决RenderView窗口not found问题
2016/08/28 Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
2021/02/02 Python
美国女孩服装购物网站:Justice
2017/03/04 全球购物
戴森西班牙官网:Dyson西班牙
2020/02/04 全球购物
《中华少年》教学反思
2014/02/15 职场文书
公益广告宣传方案
2014/02/28 职场文书
交通安全寄语大全
2014/04/08 职场文书
项目投资合作意向书
2014/07/29 职场文书
2014年行政助理工作总结
2014/11/19 职场文书
2014年宣传部个人工作总结
2014/12/06 职场文书
感谢师恩主题班会
2015/08/17 职场文书
vue-element-admin项目导入和导出的实现
2021/05/21 Vue.js
MySQL 如何设计统计数据表
2021/06/15 MySQL
MySQL实例精讲单行函数以及字符数学日期流程控制
2021/10/15 MySQL