Показать перенаправление локон, но не следовать - PullRequest
1 голос
/ 29 августа 2011

У меня есть следующий код:

$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 Ответ

2 голосов
/ 29 августа 2011

Легко! Не устанавливайте CURLOPT_FOLLOWLOCATION, а затем прочитайте заголовок Location из ответа.

Редактировать: Итак, немного подробнее. Заголовки - это строки ответа сразу после строки состояния, разделенные \r\n. Вам нужно разбить эти строки и найти строку с префиксом Location:. Это упражнение по разбору строк - ничего страшного или хитрого. Вы можете использовать curl_getinfo с флагом CURLINFO_HEADER_SIZE для определения общей длины заголовочной части ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...