2011-08-29 96 views
1

我有以下代碼:顯示捲曲重定向,但不遵循

$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; 

在遠程站點上的腳本將進行一定的檢查,並根據檢查結果重定向到一個小的15×15 gif圖片。

目前我有CURLOPT_FOLLOWLOCATION, 1這意味着它將遵循重定向到gif,當我回顯$curlData我得到的圖像的二進制代碼是不是我想要的。

是否可以在腳本試圖重定向我而不實際跟隨重定向的情況下進行卷曲顯示?所以我可以告訴我將哪些gif圖像重定向到,而不是回顯gif內容?

謝謝,

+0

http://stackoverflow.com/questions/5091208/php-curl-get-target-of-redirect-without-following-it –

回答

2

很容易!不要設置CURLOPT_FOLLOWLOCATION,然後從響應中讀取Location標題。

編輯:所以,更詳細一點。標題將是狀態行後面的響應行,以\r\n分隔。您需要分解這些行,然後查找以Location:爲前綴的行。這是一個字符串解析練習 - 沒有什麼令人興奮或棘手的。您可以使用curl_getinfoCURLINFO_HEADER_SIZE標誌來發現響應報頭部分的總長度。

+0

我該如何閱讀'位置'? – user838437

+0

謝謝!得到它的工作。 – user838437