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 相关文章推荐
数字转英文
Dec 06 PHP
比较全的PHP 会话(session 时间设定)使用入门代码
Jun 05 PHP
php在页面中调用fckeditor编辑器的方法
Jun 10 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
Jun 30 PHP
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
Apr 08 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
Nov 12 PHP
关于JSON以及JSON在PHP中的应用技巧
Nov 27 PHP
xss防御之php利用httponly防xss攻击
Mar 21 PHP
ThinkPHP内置jsonRPC的缺陷分析
Dec 18 PHP
php+mysql实现无限分类实例详解
Jan 15 PHP
PHP判断网络文件是否存在的方法
Mar 12 PHP
PHP基于curl post实现发送url及相关中文乱码问题解决方法
Nov 25 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程序实现支持页面后退的两种方法
2008/06/30 PHP
又拍云异步上传实例教程详解
2016/04/19 PHP
php常用数组函数实例小结
2016/12/29 PHP
php观察者模式应用场景实例详解
2017/02/03 PHP
Yii2框架实现登陆添加验证码功能示例
2018/07/12 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
利用Jquery实现可多选的下拉框
2014/02/21 Javascript
javascript中cookie对象用法实例分析
2015/01/30 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
seajs实现强制刷新本地缓存的方法分析
2017/10/16 Javascript
js中addEventListener()与removeEventListener()用法案例分析
2020/03/02 Javascript
JavaScript 正则应用详解【模式、欲查、反向引用等】
2020/05/13 Javascript
Jquery高级应用Deferred对象原理及使用实例
2020/05/28 jQuery
[03:59]DOTA2英雄梦之声_第07期_水晶室女
2014/06/23 DOTA
Python入门及进阶笔记 Python 内置函数小结
2014/08/09 Python
python 爬取微信文章
2016/01/30 Python
Python初学时购物车程序练习实例(推荐)
2017/08/08 Python
Python实现的双色球生成功能示例
2017/12/18 Python
Django 根据数据模型models创建数据表的实例
2018/05/27 Python
详解python中的装饰器
2018/07/10 Python
python和opencv实现抠图
2018/07/18 Python
Python基于百度云文字识别API
2018/12/13 Python
python继承threading.Thread实现有返回值的子类实例
2020/05/02 Python
python中np是做什么的
2020/07/21 Python
套娃式文件夹如何通过Python批量处理
2020/08/23 Python
python 图像增强算法实现详解
2021/01/24 Python
HTML5 在canvas中绘制矩形附效果图
2014/06/23 HTML / CSS
实习销售业务员自我鉴定
2013/09/21 职场文书
高中毕业生自我鉴定
2013/11/03 职场文书
机电一体化专业推荐信
2013/12/03 职场文书
学校岗位设置方案
2014/01/16 职场文书
数控个人求职信范文
2014/02/03 职场文书
体育教学随笔感言
2014/02/24 职场文书
护士长竞聘书
2014/03/31 职场文书
伊琍体标语
2014/06/25 职场文书
维稳工作情况汇报
2014/10/27 职场文书