本版
查看: 18441|回复: 9

[水] PHP代码实现远程下载文件到本地

[复制链接]
标签: 下载文件  

Super Moderator

楼主(1#)
发表于 2013-6-4 21:46:11 | 只看该作者 |只看大图 |倒序浏览 |阅读模式
[p=25, 2, left][color=rgb(0, 0, 0)]如果服务器支持CURL函数,程序则会优先选择CURL,因为测试结果表明CURL的响应时间及资源占用率比file_get_contents小得多;如果大家有好的建议及改进方案。[/color][/p][p=25, 2, left][color=rgb(0, 0, 0)]
  1. <?php
    echo httpcopy("http://download.comsenz.com/DiscuzX/3.0/Discuz_X3.0_SC_GBK.zip");

    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;
    }
    }
    }
    ?>
[/color][/p]
回复

支持 | 反对  0 支持 / 0 反对 评分 举报

Super Moderator

沙发(2#)
 楼主| 发表于 2013-6-4 22:03:17 | 只看该作者
讲讲 我是怎么想到这个的。
某天。无聊ing。。。半梦半醒 胡思乱想。想到以前 装的一个asp博客程序,就一个简简单单的安装文件,上传到服务器上,远程下载安装文件。
再者,又联想到每次在论坛下载插件,应用中心直接把文件下载到服务器上。
----------------------------继续联想-------------------------------
。。我每次转移论坛,把原来主机上的论坛文件打个包 用我那小水管下载到本机,在上传到新主机上面。
预计半个小时完成的任务,经常是、、一个小时过去了。。。两个小时过去了。。。。看着剩余时间。终于变成00:00:00了。。
正想高兴,发现居然还有数据库。。。。。
----------------------------------------------------------------------
想到这个之后,百度了一下,果然有这么个代码。。
回来我给他加工一下,把zip压缩解压功能加进去,优化一下。岂不是就能爽爆了、、
哈哈哈哈哈哈哈

Super Moderator

板凳(3#)
 楼主| 发表于 2013-8-19 11:23:53 | 只看该作者
鱼雁可 发表于 2013-6-4 23:50
只有想不到 没有做不到

恩

Super Moderator

地板(4#)
 楼主| 发表于 2013-8-19 11:24:12 | 只看该作者
鱼雁可 发表于 2013-6-4 23:50
只有想不到 没有做不到

你学php是用什么软件做

[Lv.7]特大萝卜

5#
发表于 2014-12-20 17:55:28 来自手机 | 只看该作者
nkc3g4 发表于 2013-6-4 22:03
讲讲 我是怎么想到这个的。
某天。无聊ing。。。半梦半醒 胡思乱想。想到以前 装的一个asp博客程序,就一个 ...

请问你的优化版本可以分享出来吗?
相信很多人都会需要用到的!

Super Moderator

6#
 楼主| 发表于 2014-12-20 17:57:35 | 只看该作者
im641 发表于 2014-12-20 17:55
请问你的优化版本可以分享出来吗?
相信很多人都会需要用到的!

什么优化版本?

这是多古老的帖子了...

[Lv.7]特大萝卜

7#
发表于 2014-12-21 12:27:09 | 只看该作者
nkc3g4 发表于 2014-12-20 17:57
什么优化版本?

这是多古老的帖子了...

就是你的添加解压功能的版本啊

Super Moderator

8#
 楼主| 发表于 2014-12-21 14:10:50 | 只看该作者

联系我们(Contact)|手机版|萝卜头IT论坛 ( 苏ICP备15050961号-1 )

GMT+8, 2026-10-31 23:20 , Processed in 0.07 second(s), 20 queries , Gzip On.

快速回复 返回顶部 返回列表