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 相关文章推荐
利用递归把多维数组转为一维数组的函数
Oct 09 PHP
用php实现像JSP,ASP里Application那样的全局变量
Jan 12 PHP
php数据库密码的找回的步骤
Jan 12 PHP
apache php模块整合操作指南
Nov 16 PHP
解析PHP中的内存管理,PHP动态分配和释放内存
Jun 28 PHP
php判断当前用户已在别处登录的方法
Jan 06 PHP
php基于socket实现SMTP发送邮件的方法
Mar 05 PHP
php取得字符串首字母的方法
Mar 25 PHP
学习php设计模式 php实现工厂模式(factory)
Dec 07 PHP
php判断目录存在的简单方法
Sep 26 PHP
laravel 根据不同组织加载不同视图的实现
Oct 14 PHP
PHP设计模式之命令模式示例详解
Dec 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
PHP5函数小全(分享)
2013/06/06 PHP
PHP多文件上传实例
2015/07/09 PHP
使用git迁移Laravel项目至新开发环境的步骤详解
2020/04/06 PHP
PHP数组Key强制类型转换实现原理解析
2020/09/01 PHP
slice函数的用法 之不错的应用
2006/12/29 Javascript
js跨域和ajax 跨域问题的实现思路
2009/09/05 Javascript
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
2010/02/15 Javascript
javascript制作坦克大战全纪录(1)
2014/11/27 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
input框中的name和id的区别
2016/11/16 Javascript
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
2016/12/15 Javascript
javascript ES6中箭头函数注意细节小结
2017/02/17 Javascript
JS实现简单表格排序操作示例
2017/10/07 Javascript
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
vue-for循环嵌套操作示例
2019/01/28 Javascript
使用 JavaScript 创建并下载文件(模拟点击)
2019/10/25 Javascript
[51:20]完美世界DOTA2联赛PWL S2 Magma vs PXG 第一场 11.28
2020/12/01 DOTA
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
python数据结构之线性表的顺序存储结构
2018/09/28 Python
python实现扫描ip地址的小程序
2019/04/16 Python
django基于cors解决跨域请求问题详解
2019/08/06 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
Python Sympy计算梯度、散度和旋度的实例
2019/12/06 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
泰国演唱会订票网站:StubHub泰国
2018/02/26 全球购物
NFL加拿大官方网上商店:NHLShop.ca
2019/03/12 全球购物
Sandro法国官网:法国成衣品牌
2019/08/28 全球购物
西部世纪.net笔试题面试题
2014/04/03 面试题
资深财务管理人员自我评价
2013/09/22 职场文书
2014年乡镇安全生产工作总结
2014/12/02 职场文书
2015暑期社会实践通讯稿
2015/07/18 职场文书
年会邀请函的格式及范文五篇
2019/11/02 职场文书
2019年度政务公开考核工作总结模板
2019/11/11 职场文书
船舶调度指挥系统——助力智慧海事
2022/02/18 无线电
winserver2019安装软件一直卡在应用程序正在为首次使用做准备
2022/06/10 Servers