nkc3g4 发表于 2013-6-4 21:46:11

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

如果服务器支持CURL函数,程序则会优先选择CURL,因为测试结果表明CURL的响应时间及资源占用率比file_get_contents小得多;如果大家有好的建议及改进方案。<?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;
      }
    }
}
?>

nkc3g4 发表于 2013-6-4 22:03:17

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

nkc3g4 发表于 2013-8-19 11:23:53

鱼雁可 发表于 2013-6-4 23:50
只有想不到 没有做不到

nkc3g4 发表于 2013-8-19 11:24:12

鱼雁可 发表于 2013-6-4 23:50
只有想不到 没有做不到

你学php是用什么软件做

im641 发表于 2014-12-20 17:55:28

nkc3g4 发表于 2013-6-4 22:03
讲讲 我是怎么想到这个的。
某天。无聊ing。。。半梦半醒 胡思乱想。想到以前 装的一个asp博客程序,就一个 ...

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

nkc3g4 发表于 2014-12-20 17:57:35

im641 发表于 2014-12-20 17:55
请问你的优化版本可以分享出来吗?
相信很多人都会需要用到的!

什么优化版本?

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

im641 发表于 2014-12-21 12:27:09

nkc3g4 发表于 2014-12-20 17:57
什么优化版本?

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

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

nkc3g4 发表于 2014-12-21 14:10:50

im641 发表于 2014-12-21 12:27
就是你的添加解压功能的版本啊

http://bbs.luobotou.org/forum.php?mod=viewthread&tid=4177&highlight=http%3A%2F%2Fdownload.comsenz.com%2FDiscuzX%2F3.0%2F
页: [1] 2
查看完整版本: PHP代码实现远程下载文件到本地