萝卜头IT论坛

搜索
查看: 7077|回复: 9
收起左侧

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

[复制链接]
发表于 2013-6-4 21:46:11 | 显示全部楼层 |阅读模式

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

  1. <?php
  2. echo httpcopy("http://download.comsenz.com/DiscuzX/3.0/Discuz_X3.0_SC_GBK.zip");

  3. function httpcopy($url, $file="", $timeout=60) {
  4.     $file = empty($file) ? pathinfo($url,PATHINFO_BASENAME) : $file;
  5.     $dir = pathinfo($file,PATHINFO_DIRNAME);
  6.     !is_dir($dir) && @mkdir($dir,0755,true);
  7.     $url = str_replace(" ","%20",$url);

  8.     if(function_exists('curl_init')) {
  9.         $ch = curl_init();
  10.         curl_setopt($ch, CURLOPT_URL, $url);
  11.         curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
  12.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  13.         $temp = curl_exec($ch);
  14.         if(@file_put_contents($file, $temp) && !curl_error($ch)) {
  15.             return $file;
  16.         } else {
  17.             return false;
  18.         }
  19.     } else {
  20.         $opts = array(
  21.             "http"=>array(
  22.             "method"=>"GET",
  23.             "header"=>"",
  24.             "timeout"=>$timeout)
  25.         );
  26.         $context = stream_context_create($opts);
  27.         if(@copy($url, $file, $context)) {
  28.             //$http_response_header
  29.             return $file;
  30.         } else {
  31.             return false;
  32.         }
  33.     }
  34. }
  35. ?>
复制代码


回复

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2013-8-19 11:23:53 | 显示全部楼层
鱼雁可 发表于 2013-6-4 23:50
只有想不到 没有做不到

回复

使用道具 举报

 楼主| 发表于 2013-8-19 11:24:12 | 显示全部楼层
鱼雁可 发表于 2013-6-4 23:50
只有想不到 没有做不到

你学php是用什么软件做
回复

使用道具 举报

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

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

使用道具 举报

 楼主| 发表于 2014-12-20 17:57:35 | 显示全部楼层
im641 发表于 2014-12-20 17:55
请问你的优化版本可以分享出来吗?
相信很多人都会需要用到的!

什么优化版本?

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

使用道具 举报

发表于 2014-12-21 12:27:09 | 显示全部楼层
nkc3g4 发表于 2014-12-20 17:57
什么优化版本?

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

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

使用道具 举报

 楼主| 发表于 2014-12-21 14:10:50 | 显示全部楼层
回复

使用道具 举报

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

GMT+8, 2024-5-2 11:10 , Processed in 0.100316 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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