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 相关文章推荐
JS与PHP向函数传递可变参数的区别实例代码
May 18 PHP
帝国cms常用标签汇总
Jul 06 PHP
php通过排列组合实现1到9数字相加都等于20的方法
Aug 03 PHP
php开发工具有哪五款
Nov 09 PHP
学习php设计模式 php实现备忘录模式(Memento)
Dec 09 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
Mar 07 PHP
PHP 数组基本操作方法详解
Jun 17 PHP
php结合mysql与mysqli扩展处理事务的方法
Jun 29 PHP
PHP编程 SSO详细介绍及简单实例
Jan 13 PHP
几行代码轻松实现PHP文件打包下载zip
Mar 01 PHP
PHP token验证生成原理实例分析
Jun 05 PHP
php中用unset销毁变量并释放内存
May 10 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 高性能书写
2010/12/11 PHP
php判断电脑访问、手机访问的例子
2014/05/10 PHP
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
2017/03/06 PHP
让iframe框架网页在任何浏览器下自动伸缩
2006/08/18 Javascript
jquery对table中各数据的增加、保存、删除操作示例
2014/05/14 Javascript
编写简单的jQuery提示插件
2014/12/21 Javascript
jQuery实现自动与手动切换的滚动新闻特效代码分享
2015/08/27 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
基于jQuery实现的无刷新表格分页实例
2016/02/17 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
React 子组件向父组件传值的方法
2017/07/24 Javascript
JS+H5 Canvas实现时钟效果
2018/07/20 Javascript
JavaScript中引用vs复制示例详析
2018/12/06 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
2019/06/21 Javascript
[10:18]2018DOTA2国际邀请赛寻真——找回自信的TNCPredator
2018/08/13 DOTA
python中去空格函数的用法
2014/08/21 Python
python根据开头和结尾字符串获取中间字符串的方法
2015/03/26 Python
Python中__init__.py文件的作用详解
2016/09/18 Python
用python写一个windows下的定时关机脚本(推荐)
2017/03/21 Python
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
分析python请求数据
2018/08/19 Python
Django外键(ForeignKey)操作以及related_name的作用详解
2019/07/29 Python
python中Lambda表达式详解
2019/11/20 Python
开启Django博客的RSS功能的实现方法
2020/02/17 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
2020/05/10 Python
沙特阿拉伯排名第一的在线时尚购物应用程序:1Zillion
2020/08/08 全球购物
文秘个人求职信范文
2014/04/22 职场文书
团支部建设方案
2014/05/02 职场文书
2014年党务公开方案
2014/05/08 职场文书
离婚协议书的范本
2015/01/27 职场文书
2015年教师教学工作总结
2015/04/28 职场文书
幸福来敲门观后感
2015/06/04 职场文书
高中信息技术教学反思
2016/02/16 职场文书
Mybatis-plus在项目中的简单应用
2021/07/01 Java/Android
分析MySQL优化 index merge 后引起的死锁
2022/04/19 MySQL