我正在尝试使用cURL获取此图片:http://images.egypt.souq.com/media/item/2013/02/27/49/97/32/8/item_L_4997328_1650476.jpg
使用此代码:
public static function fetchUrl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch); //get curl response
curl_close($ch);
return $data;
}
此代码正在处理任何图像(我至少尝试过),除了上面的图像,它在消耗了所有超时50秒后返回false,
有人知道为什么吗?
答案 0 :(得分:1)
为cURL指定userAgent解决了我的问题:
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
这里我从请求中获取userAgent,
或者我甚至可以手动指定它:
curl_setopt($ch, CURLOPT_USERAGENT, "spider");
答案 1 :(得分:0)
这样的事情怎么样? phpFiddle
<?php
function data_uri($file, $mime)
{
$contents = file_get_contents($file);
$base64 = base64_encode($contents);
return ('data:' . $mime . ';base64,' . $base64);
}
?>
<img src="<?php echo data_uri('http://images.egypt.souq.com/media/item/2013/02/27/49/97/32/8/item_L_4997328_1650476.jpg','image/jpg'); ?>" />
来自here的信息。