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 相关文章推荐
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
Mar 03 PHP
PHP服务器页面间跳转实现方法
Aug 02 PHP
CodeIgniter基本配置详细介绍
Nov 12 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
Dec 20 PHP
更改localhost为其他名字的方法
Feb 10 PHP
PHP base64编码后解码乱码的解决办法
Jun 19 PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
Jun 19 PHP
php实现的验证码文件类实例
Jun 18 PHP
简单理解PHP的面向对象编程方式
May 17 PHP
php数据库操作model类(使用__call方法)
Nov 16 PHP
PHP实现更改hosts文件的方法示例
Aug 08 PHP
php实现数组中出现次数超过一半的数字的统计方法
Oct 14 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
Smarty模板快速入门
2007/01/04 PHP
两级联动select刷新后其值保持不变的实现方法
2014/01/27 PHP
thinkphp中ajax与php响应过程详解
2014/12/08 PHP
2款PHP无限级分类实例代码
2015/11/11 PHP
THINKPHP5分页数据对象处理过程解析
2020/10/28 PHP
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
jqPlot jquery的页面图表绘制工具
2009/07/25 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
extjs 时间范围选择自动判断的实现代码
2014/06/24 Javascript
js使用心得分享
2015/01/13 Javascript
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
2015/09/18 Javascript
JSON字符串转换JSONObject和JSONArray的方法
2016/06/03 Javascript
Javascript之Date对象详解
2016/06/07 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
2016/10/30 Javascript
JS 调用微信扫一扫功能
2016/12/22 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
2016/12/27 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
Angularjs为ng-click事件传递参数
2017/06/15 Javascript
解决Extjs下拉框不显示的问题
2017/06/21 Javascript
JavaScript多种滤镜算法实现代码实例
2019/12/10 Javascript
[37:45]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS Orenda
2014/05/22 DOTA
[36:37]2014 DOTA2华西杯精英邀请赛5 24 VG VS iG
2014/05/25 DOTA
python数据处理实战(必看篇)
2017/06/11 Python
Python3.6简单操作Mysql数据库
2017/09/12 Python
浅谈Python对内存的使用(深浅拷贝)
2018/01/17 Python
在python中利用最小二乘拟合二次抛物线函数的方法
2018/12/29 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
2019/01/05 Python
Django项目后台不挂断运行的方法
2019/08/31 Python
Python实现企业微信机器人每天定时发消息实例
2020/02/25 Python
Python 实现二叉查找树的示例代码
2020/12/21 Python
Nili Lotan官网:Nili Lotan同名品牌
2018/01/07 全球购物
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
关于学习的演讲稿
2014/05/10 职场文书
项目委托协议书(最新)
2014/09/13 职场文书
2014年乡镇民政工作总结
2014/12/02 职场文书
Ubuntu安装Mysql+启用远程连接的完整过程
2022/06/21 Servers