项目中采集图片的时候,发现某些图片已经“下载下来”,但为0字节。查看对应的源码,是用file_get_content方法简单获取远程图片,但不知道为什么无法获取了,仔细检查图片的地址,是有http开头的,在网页上也能正常访问。既然file_get_content行不通,那就用curl
function download_img($url = "", $filename = "")
{
$ch = curl_init(); //初始化一个curl句柄
$hd = fopen($filename,'wb'); //只写打开或新建一个二进制文件;只允许写数据
curl_setopt($ch,CURLOPT_URL,$url); //需要获取的 URL 地址
curl_setopt($ch,CURLOPT_FILE,$hd); //设置成资源流的形式
curl_setopt($ch,CURLOPT_HEADER,0); //启用时会将头文件的信息作为数据流输出。
//curl_setopt($ch,CURLOPT_RETURNTRANSFER,false);//以数据流的方式返回数据,false时直接显示
curl_setopt($ch,CURLOPT_TIMEOUT,60); //设置超时时间
curl_exec($ch); //执行curl
curl_close($ch); //关闭curl会话
fclose($hd); //关闭句柄
return true;
}