Как получить контент при получении заголовка 503 или 404 - PullRequest
0 голосов
/ 11 января 2012

Иногда HTTP 404 приходит из заголовка ответа - может быть содержимое ответа (обычно пользовательская ошибка 404) или страница 503 в браузере Google.com покажет капчу, позволяющую пользователю писать письма.

Страница ошибки Google http://goohackle.com/imgs/google_error.jpg

Если я зайду на страницу 404 в браузере, он просто загрузит содержимое страницы ошибки 404. Но в PHP cURL не показывает ничего такого же, как браузер.

Могу ли я использовать cURL для получения контента, когда заголовок возвращает страницу 404 или 503?

Например, код я создаю страницу, чтобы показать ошибку 503 в www.example.com/show503.php

header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 7200'); // in seconds
print "This message will show only browser";

когда я свернусь на www.example.com/show503.php с этим кодом

$ch = curl_init('www.example.com/show503.php');
$ret = curl_exec($ch);
curl_close($ch);
var_dump($ret);

При получении значения NULL невозможно получить содержимое «Это сообщение будет отображаться только браузером».

Ответы [ 3 ]

3 голосов
/ 11 января 2012

Для простой выборки текста вы можете использовать метод file_get_contents.

3 голосов
/ 11 января 2012

Вы не устанавливаете CURLOPT_RETURNTRANSFER, поэтому вы все равно ничего не получите.

Это должно работать:

$ch = curl_init('www.example.com/show503.php');
curl_setopt($ch ,CURLOPT_RETURNTRANSFER,true);
$ret = curl_exec($ch);
curl_close($ch);
var_dump($ret);
1 голос
/ 26 октября 2012

Думаю, вам понадобится

curl_setopt($ch ,CURLOPT_HTTP200ALIASES,array(404,503));

см

http://php.net/manual/en/function.curl-setopt.php:)

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