使用此图像卷曲超时

时间:2013-06-23 16:53:58

标签: php curl

我正在尝试使用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,

有人知道为什么吗?

2 个答案:

答案 0 :(得分:1)

为cURL指定userAgent解决了我的问题:

curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);

这里我从请求中获取userAgent,

或者我甚至可以手动指定它:

curl_setopt($ch, CURLOPT_USERAGENT, "spider");

这个答案对我有帮助:https://stackoverflow.com/a/6595108/905801

答案 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的信息。