Хорошо, вот как я отлаживать эти вещи быстро (это не работает всегда, но для первой попытки ударить резину на дороге больше контактов, это обычно делает это):
Требования: Curl для командная строка (доступен, вероятно, для каждой компьютерной системы на земле, посетите домашнюю страницу, если вы не имеете его еще нет):
-i
является список заголовков, а также (используйте -I
для запроса HEAD, если приходит слишком много данных), а затем -v
для подробных (показывает, что происходит):
$ curl -iv 'http://celebcrust.com/?p=15055'
* Adding handle: conn: 0xa50260
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0xa50260) send_pipe: 1, recv_pipe: 0
* About to connect() to celebcrust.com port 80 (#0)
* Trying 70.32.78.224...
* Connected to celebcrust.com (70.32.78.224) port 80 (#0)
> GET /?p=15055 HTTP/1.1
> User-Agent: curl/7.30.0
> Host: celebcrust.com
> Accept: */*
>
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Date: Sat, 31 Aug 2013 14:29:54 GMT
Date: Sat, 31 Aug 2013 14:29:54 GMT
* Server Apache is not blacklisted
< Server: Apache
Server: Apache
< X-Pingback: http://celebcrust.com/xmlrpc.php
X-Pingback: http://celebcrust.com/xmlrpc.php
< X-Powered-By: PleskLin
X-Powered-By: PleskLin
< Content-Length: 159
Content-Length: 159
< Connection: close
Connection: close
< Content-Type: text/html; charset=UTF-8
Content-Type: text/html; charset=UTF-8
<
<META HTTP-EQUIV=Refresh CONTENT="0; URL=http://www.celebgossip.com/2013/04/willie-nelson-celebrates-80th-birthday-stoned-and-auditi
oning-for-gandalf-39425/">
* Closing connection 0
Как показано на рисунке, сервер не отправляет заголовок Location:
, поэтому это полностью объясняет, что вы его не видите.
Вместо этого он отправляет HTML в тело ответа, которое анализируется гипертекстовым клиентом (webbrowser) для значения заголовка HTTP-эквивалента Refresh:
.
Это не бурение локон. Вам нужно добавить парсер HTML и проверить их, я предлагаю DOMDocument
с его методом ->loadHTML()
.
Каков ваш вопрос? Вопросы, требующие кода, должны ** демонстрировать минимальное понимание проблемы, которая решается **. Включите попытки решения, почему они не работают, и ожидаемые * результаты. См. Также: [Контрольный список вопросов переполнения стека] (http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist) – hakre
Не могли бы вы привести пример URL-адреса, где вы видите это поведение, и быть немного более ясно о том, что именно происходит? «этот код с этим сайтом - произойдет следующее: изменив эту строку, это произойдет. Я хотел бы, чтобы XXX произошел. Как мне это сделать?» Ваше текущее описание более запутанно, чем вы понимаете. – Floris
Возможный дубликат [Curl, следовать за местоположением, но только получить заголовок нового местоположения?] (Http://stackoverflow.com/questions/6129000/curl-follow-location-but-only-get-header-of-the- new-location) – hakre