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不用正则采集速度探究总结
Mar 24 PHP
php初学者写及时补给skype用户充话费的小程序
Nov 02 PHP
php获取mysql数据库中的所有表名的代码
Apr 23 PHP
PHP 八种基本的数据类型小结
Jun 01 PHP
PHP学习散记_编码(json_encode 中文不显示)
Nov 10 PHP
PHP批量生成静态HTML的简单原理和方法
Apr 20 PHP
php中删除、清空session的方式总结
Oct 09 PHP
学习php设计模式 php实现工厂模式(factory)
Dec 07 PHP
apache php mysql开发环境安装教程
Jul 28 PHP
PHP智能识别收货地址信息实例
Jan 05 PHP
PHP rmdir()函数的用法总结
Jul 02 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
请离开include_once和require_once
2013/07/18 PHP
thinkphp整合微信支付代码分享
2016/11/24 PHP
phpmailer绑定邮箱的实现方法
2016/12/01 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
2011/08/23 Javascript
Jquery 的扩展方法总结
2011/10/01 Javascript
FusionCharts图表显示双Y轴双(多)曲线
2012/11/22 Javascript
document.createElement()用法及注意事项(ff下不兼容)
2013/03/13 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
调试代码导致IE出错的避免方法
2014/04/04 Javascript
node.js中的fs.mkdirSync方法使用说明
2014/12/17 Javascript
深入浅析JavaScript中with语句的理解
2016/05/12 Javascript
D3.js实现文本的换行详解
2016/10/14 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
jQuery Validate插件自定义验证规则的方法
2016/12/27 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
2018/01/04 Javascript
JS简单实现动态添加HTML标记的方法示例
2018/04/08 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
Nodejs使用Mongodb存储与提供后端CRD服务详解
2018/09/04 NodeJs
antd-mobile ListView长列表的数据更新遇到的坑
2020/04/08 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
2020/12/10 Javascript
Python转码问题的解决方法
2008/10/07 Python
Python实现基于PIL和tesseract的验证码识别功能示例
2018/07/11 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
python学生管理系统学习笔记
2019/03/19 Python
在pytorch中动态调整优化器的学习率方式
2020/06/24 Python
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
自我评价的正确写法
2013/09/19 职场文书
运动会稿件50字
2014/02/17 职场文书
2014年幼儿园重阳节活动方案
2014/09/16 职场文书
离婚答辩状怎么写
2015/05/22 职场文书
go语言中fallthrough的用法说明
2021/05/06 Golang
Java实现多文件上传功能
2021/06/30 Java/Android
python人工智能human learn绘图可创建机器学习模型
2021/11/23 Python
配置Kubernetes外网访问集群
2022/03/31 Servers