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的SQL注入过程分析
Jan 06 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
Sep 25 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
Sep 23 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
Dec 25 PHP
dedecms函数分享之获取某一栏目所有子栏目
May 19 PHP
php简单操作mysql数据库的类
Apr 16 PHP
php生成动态验证码gif图片
Oct 19 PHP
利用PHP命令行模式采集股票趋势信息
Aug 09 PHP
php+ajax实现异步上传文件或图片功能
Jul 18 PHP
微信企业转账之入口类分装php代码
Oct 01 PHP
详解PHP队列的实现
Mar 14 PHP
Laravel5.1 框架路由基础详解
Jan 04 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
php中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
Zend Framework教程之Zend_Config_Ini用法分析
2016/03/23 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
PHP实现转盘抽奖算法分享
2020/04/15 PHP
javascript Array.prototype.slice的使用示例
2013/11/14 Javascript
BootStrap中Table分页插件使用详解
2016/10/09 Javascript
javascript使用btoa和atob来进行Base64转码和解码
2017/03/20 Javascript
JavaScript注册时密码强度校验代码
2017/06/30 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
Spring boot 和Vue开发中CORS跨域问题解决
2018/09/05 Javascript
一步步教你利用Docker设置Node.js
2018/11/20 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
2019/01/03 Javascript
从理论角度讨论JavaScript闭包
2019/04/03 Javascript
vue跳转页面的几种方法(推荐)
2020/03/26 Javascript
es6数组之扩展运算符操作实例分析
2020/04/25 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
一个检测OpenSSL心脏出血漏洞的Python脚本分享
2014/04/10 Python
Python求导数的方法
2015/05/09 Python
使用C++扩展Python的功能详解
2018/01/12 Python
python使用pil库实现图片合成实例代码
2018/01/20 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
Python Dict找出value大于某值或key大于某值的所有项方式
2020/06/05 Python
Python生成器generator原理及用法解析
2020/07/20 Python
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
Java程序员面试90题
2013/10/19 面试题
PyQt 如何创建自定义QWidget
2021/03/24 Python
物业客服专员岗位职责
2013/11/30 职场文书
通信生自我鉴定
2014/01/18 职场文书
村干部承诺书
2014/03/28 职场文书
《长江之歌》教学反思
2014/04/17 职场文书
消费者理赔投诉书
2015/07/02 职场文书
2015年教师节新闻稿
2015/07/17 职场文书
反邪教教育心得体会
2016/01/15 职场文书
2019最新版股权转让及委托持股协议书范本
2019/08/07 职场文书
SpringBoot SpringEL表达式的使用
2021/07/25 Java/Android
PyTorch中的torch.cat简单介绍
2022/03/17 Python