PHP代码实现远程下载文件到本地
如果服务器支持CURL函数,程序则会优先选择CURL,因为测试结果表明CURL的响应时间及资源占用率比file_get_contents小得多;如果大家有好的建议及改进方案。<?phpecho 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;
}
}
}
?>
讲讲 我是怎么想到这个的。
某天。无聊ing。。。半梦半醒 胡思乱想。想到以前 装的一个asp博客程序,就一个简简单单的安装文件,上传到服务器上,远程下载安装文件。
再者,又联想到每次在论坛下载插件,应用中心直接把文件下载到服务器上。
----------------------------继续联想-------------------------------
。。我每次转移论坛,把原来主机上的论坛文件打个包用我那小水管下载到本机,在上传到新主机上面。
预计半个小时完成的任务,经常是、、一个小时过去了。。。两个小时过去了。。。。看着剩余时间。终于变成00:00:00了。。
正想高兴,发现居然还有数据库。。。。。
----------------------------------------------------------------------
想到这个之后,百度了一下,果然有这么个代码。。
回来我给他加工一下,把zip压缩解压功能加进去,优化一下。岂不是就能爽爆了、、
哈哈哈哈哈哈哈 鱼雁可 发表于 2013-6-4 23:50
只有想不到 没有做不到
恩 鱼雁可 发表于 2013-6-4 23:50
只有想不到 没有做不到
你学php是用什么软件做 nkc3g4 发表于 2013-6-4 22:03
讲讲 我是怎么想到这个的。
某天。无聊ing。。。半梦半醒 胡思乱想。想到以前 装的一个asp博客程序,就一个 ...
请问你的优化版本可以分享出来吗?
相信很多人都会需要用到的! im641 发表于 2014-12-20 17:55
请问你的优化版本可以分享出来吗?
相信很多人都会需要用到的!
什么优化版本?
这是多古老的帖子了... nkc3g4 发表于 2014-12-20 17:57
什么优化版本?
这是多古老的帖子了...
就是你的添加解压功能的版本啊
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