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初学入门
Nov 19 PHP
JS实现php的伪分页
May 25 PHP
PHP不用第三变量交换2个变量的值的解决方法
Jun 02 PHP
如何在PHP中使用正则表达式进行查找替换
Jun 13 PHP
迅速确定php多维数组的深度的方法
Jan 07 PHP
Chrome Web App开发小结
Sep 04 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
Dec 15 PHP
浅析php设计模式之数据对象映射模式
Mar 03 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
Mar 03 PHP
PHP的Yii框架中过滤器相关的使用总结
Mar 29 PHP
PHP简单预防sql注入的方法
Sep 27 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
Win2003服务器安全加固设置--进一步提高服务器安全性
2007/05/23 PHP
10 个经典PHP函数
2013/10/17 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
jquery实现居中弹出层代码
2010/08/25 Javascript
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
2011/03/10 Javascript
javascript nextSibling 与 getNextElement(node) 使用介绍
2011/10/13 Javascript
调用DOM对象的focus使文本框获得焦点
2014/02/19 Javascript
js实现的标题栏新消息闪烁提示效果
2014/06/06 Javascript
输入框过滤非数字的js代码
2014/09/18 Javascript
浅谈JavaScript中运算符的优先级
2015/07/07 Javascript
简单实现限制uploadify上传个数
2015/11/16 Javascript
jQuery实现简单隔行变色的方法
2016/02/20 Javascript
JS ES6中setTimeout函数的执行上下文示例
2017/04/27 Javascript
javascript+html5+css3自定义提示窗口
2017/06/21 Javascript
JS使用tofixed与round处理数据四舍五入的区别
2017/10/25 Javascript
详解react-redux插件入门
2018/04/19 Javascript
js判断复选框是否选中的方法示例【基于jQuery】
2019/10/10 jQuery
JavaScript将数组转换为链表的方法
2020/02/16 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
2020/10/22 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
python2.7到3.x迁移指南
2018/02/01 Python
django中静态文件配置static的方法
2018/05/20 Python
对python cv2批量灰度图片并保存的实例讲解
2018/11/09 Python
使用html5 canvas创建太空游戏的示例
2014/05/08 HTML / CSS
Html5移动端适配IphoneX等机型的方法
2019/06/25 HTML / CSS
Kathmandu英国网站:新西兰户外运动品牌
2017/03/27 全球购物
护理学应聘自荐书范文
2014/02/05 职场文书
干部下基层实施方案
2014/03/14 职场文书
内衣营销方案
2014/03/15 职场文书
学术会议主持词
2014/03/17 职场文书
满月酒主持词
2014/03/27 职场文书
2015年办公室人员工作总结
2015/05/15 职场文书
python Django框架快速入门教程(后台管理)
2021/07/21 Python
Pillow图像处理库安装及使用
2022/04/12 Python
python内置模块之上下文管理contextlib
2022/06/14 Python