显示卷曲重定向,但不要跟随

时间:2011-08-29 12:21:18

标签: php curl

我有以下代码:

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://www.site.com/check.php?id=1");
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)");
$curlData = curl_exec($curl);
curl_close($curl);
echo $curlData;

远程站点上的脚本将执行某项检查,并根据检查结果重定向到一个15x15的小型gif图像。

目前我有CURLOPT_FOLLOWLOCATION, 1这意味着它将跟随重定向到gif,当我回显$curlData时,我得到图像的二进制代码,这不是我想要的。

是否可以将curl显示在脚本尝试重定向的位置,而不实际遵循重定向?所以我可以告诉我哪个gif图像重定向我而不是回显gif内容?

谢谢,

1 个答案:

答案 0 :(得分:2)

轻松!不要设置CURLOPT_FOLLOWLOCATION,然后从响应中读取Location标题。

编辑:所以,更详细一点。标题将是状态行之后的响应行,以\r\n分隔。您需要拆分这些行,并查找前缀为Location:的行。这是一个字符串解析练习 - 没什么特别令人兴奋或棘手的。您可以将curl_getinfoCURLINFO_HEADER_SIZE标志一起使用,以发现响应标头部分的总长度。