如果服务器支持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;
- }
- }
- }
- ?>
复制代码
|