所以我试图从远程站点获取图像的内容(它的前700个字节):
$headers = array(
"Range: bytes=0-700"
);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$raw = curl_exec($curl);
curl_close($curl);
@$im = imagecreatefromstring($raw);
其中$ url是一些远程图像....它工作得很好
但是当我使用curl_multi_getcontent时,
$h = curl_init();
$headers = array(
"Range: bytes=0-700"
);
curl_setopt($h, CURLOPT_URL, $url);
curl_setopt($h, CURLOPT_HEADER, $headers);
curl_setopt($h, CURLOPT_RETURNTRANSFER, 1); //return the image value
$mh = curl_multi_init();
curl_multi_add_handle($mh, $h);
$running = null;
do {
curl_multi_exec($mh, $running);
} while ($running > 0);
$raw = curl_multi_getcontent($h);
@$im = imagecreatefromstring($raw);
PHP会在@$im = imagecreatefromstring($raw);
行抱怨数据不是可识别的格式
我做错了什么?我想使用multi exec选项,因为我可以将它并行化....
我也尝试将这一行更改为多段中的curl_setopt($h, CURLOPT_HEADER, $headers);
进入CURLOPT_HTTPHEADER,就像第一行一样,但是连接被重置并且再一次是由于imagecreatefromstring,因为在评论该行后,它没有' t重置
答案 0 :(得分:1)
您的第二个版本的代码包含:
curl_setopt($h, CURLOPT_HEADER, $headers);
这指示cURL返回带有结果的HTTP标头(即CURLOPT_HEADER,TRUE)
要解决此问题,请使用:
curl_setopt($h, CURLOPT_HTTPHEADER, $headers);