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的跨域访问-两种有效的解决方法介绍
Jun 22 PHP
php表单请求获得数据求和示例
May 15 PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
Jun 19 PHP
10个简化PHP开发的工具
Dec 25 PHP
php实现上传图片保存到数据库的方法
Feb 11 PHP
PHP自毁程序(慎用)
Jul 09 PHP
php生成固定长度纯数字编码的方法
Jul 09 PHP
php构造函数与析构函数
Apr 23 PHP
thinkPHP自定义类实现方法详解
Nov 30 PHP
php获取微信共享收货地址的方法
Dec 21 PHP
php中的buffer缓冲区用法分析
May 31 PHP
解决PhpStorm64不能启动的问题
Jun 20 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
基于HTTP长连接的&quot;服务器推&quot;技术的php 简易聊天室
2009/10/31 PHP
PHP输出当前进程所有变量/常量/模块/函数/类的示例
2013/11/07 PHP
ThinkPHP中的常用查询语言汇总
2014/08/22 PHP
php实现上传图片文件代码
2015/07/19 PHP
php批量删除超链接的实现方法
2015/10/19 PHP
YII框架http缓存操作示例
2019/04/29 PHP
JavaScript CSS修改学习第六章 拖拽
2010/02/19 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
NodeJS学习笔记之Connect中间件模块(二)
2015/01/27 NodeJs
javascript中传统事件与现代事件
2015/06/23 Javascript
基于OL2实现百度地图ABCD marker的效果
2015/10/01 Javascript
分析js闭包引起的事件注册问题
2016/03/29 Javascript
Bootstrap安装环境配置教程分享
2016/05/27 Javascript
纯JS打造网页中checkbox和radio的美化效果
2016/10/13 Javascript
基于JS实现9种不同的面包屑和分布式多步骤导航效果
2017/02/21 Javascript
jQuery中的deferred使用方法
2017/03/27 jQuery
浅析微信扫码登录原理(小结)
2018/10/29 Javascript
javascript实现拖拽碰撞检测
2020/03/12 Javascript
Python中的列表知识点汇总
2015/04/14 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
2018/10/14 Python
python实现DEM数据的阴影生成的方法
2019/07/23 Python
wxpython+pymysql实现用户登陆功能
2019/11/19 Python
详解HTML5 Canvas绘制不规则图形时的非零环绕原则
2016/03/21 HTML / CSS
迟到检讨书1000字
2014/01/15 职场文书
市场营销管理制度
2014/01/29 职场文书
房地产广告词大全
2014/03/19 职场文书
刊首寄语大全
2014/04/11 职场文书
专题组织生活会思想汇报
2014/10/01 职场文书
慈善募捐倡议书
2015/04/27 职场文书
电力安全教育培训心得体会
2016/01/11 职场文书
化工生产实习心得体会
2016/01/22 职场文书
2016优秀大学生个人事迹材料范文
2016/03/01 职场文书
django注册用邮箱发送验证码的实现
2021/04/18 Python
阿里云服务器部署mongodb的详细过程
2021/09/04 MongoDB
MySQL批量更新不同表中的数据
2022/05/11 MySQL