PHP实例代码:实现远程下载文件到本地的函数

前端之家收集整理的这篇文章主要介绍了PHP实例代码:实现远程下载文件到本地的函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

经常写采集器发布接口需要使用到远程附件的功能,所以自己写了一个PHP远程下载文件到本地的函数,一般情况下已经够用了,如果服务器支持CURL函数,程序则会优先选择CURL,因为测试结果表明CURL的响应时间及资源占用率比file_get_contents小得多;如果大家有好的建议及改进方案,欢迎留言给我哦!

代码

Copy to Clipboard

Liehuo.Net Codes

引用的内容[www.veryhuo.com]
<?PHP
echo httpcopy("http://www.baidu.com/img/baidu_sylogo1.gif");

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;
}
}
}
?>

猜你在找的PHP相关文章