У меня есть следующий код:
$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-контент?
Благодаря,
Без труда! Не устанавливайте CURLOPT_FOLLOWLOCATION
, а затем читайте заголовок Location
из ответа.
Изменить: Итак, немного более подробно. Заголовки будут линиями ответа сразу после строки состояния, разделенной с \r\n
. Вам нужно разбить эти строки и найти строку с префиксом Location:
Это упражнение синтаксического анализа строк – ничего страшного или сложного. Вы можете использовать curl_getinfo
с флагом CURLINFO_HEADER_SIZE
чтобы узнать общую длину части заголовка ответа.