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介绍篇
Oct 26 PHP
php设计模式 Composite (组合模式)
Jun 26 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
Jun 05 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
Jul 28 PHP
php将字符串全部转换成大写或者小写的方法
Mar 17 PHP
PHP Header用于页面跳转时的几个注意事项
Oct 21 PHP
PHP中的密码加密的解决方案总结
Oct 26 PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
Jul 27 PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
Aug 11 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
Thinkphp 框架扩展之类库扩展操作详解
Apr 23 PHP
PHP+MySql实现一个简单的留言板
Jul 19 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
Views rows style模板重写代码
2011/05/16 PHP
PHP异常处理Exception类
2015/12/11 PHP
Nginx实现反向代理
2017/09/20 Servers
PHP命令空间namespace及use的用法小结
2017/11/27 PHP
PHP实现单例模式建立数据库连接的方法分析
2020/02/11 PHP
JavaScript 加号(+)运算符号
2009/12/06 Javascript
javascript:history.go()和History.back()的区别及应用
2012/11/25 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
js实现的标题栏新消息闪烁提示效果
2014/06/06 Javascript
jQuery实现设置、移除文本框默认值功能
2015/01/13 Javascript
JS树形菜单组件Bootstrap TreeView使用方法详解
2016/12/21 Javascript
Web 开发中Ajax的Session 超时处理方法
2017/01/19 Javascript
Input文本框随着输入内容多少自动延伸的实现
2017/02/15 Javascript
JS随机排序数组实现方法分析
2017/10/11 Javascript
jQuery实现简单的回到顶部totop功能示例
2017/10/16 jQuery
原生JS实现小小的音乐播放器
2017/10/16 Javascript
angularjs通过过滤器返回超链接的方法
2018/10/26 Javascript
jQuery 查找元素操作实例小结
2019/10/02 jQuery
微信小程序实现发微博功能的示例代码
2020/06/24 Javascript
[01:04:01]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第一场
2014/05/24 DOTA
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
pyqt4教程之实现半透明的天气预报界面示例
2014/03/02 Python
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
Python批量生成特定尺寸图片及图画任意文字的实例
2019/01/30 Python
Python3分析处理声音数据的例子
2019/08/27 Python
学习Django知识点分享
2019/09/11 Python
利用python为PostgreSQL的表自动添加分区
2021/01/18 Python
Html5页面二次分享的实现
2018/07/30 HTML / CSS
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
介绍一下linux的文件权限
2012/02/15 面试题
团队激励口号
2014/06/06 职场文书
学雷锋标语
2014/06/25 职场文书
爱护公物演讲稿
2014/09/09 职场文书
高一军训决心书
2015/02/05 职场文书
5分钟教你docker安装启动redis全教程(全新方式)
2021/05/29 Redis
Python3.10的一些新特性原理分析
2021/09/15 Python