0

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

有人知道为什么吗?

4

2 回答 2

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

于 2013-06-24T15:03:54.593 回答
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'); ?>" />

来自这里的信息。

于 2013-06-24T13:12:06.960 回答