Используя PHP, как я могу прочитать страницу с ошибкой сервера? - PullRequest
2 голосов
/ 18 августа 2011

Я хочу прочитать ответ сервера на определенный запрос, изменить его в соответствии с моими потребностями и отправить его посетителю сайта.get_headers () отлично работает для заголовков, но если запрошенный файл отсутствует (404), и это именно то, что я хочу использовать, get_file_contents (), readfile () и другие функции, которые я пытался прервать с предупреждением / ошибкойчто файл отсутствует вместо чтения ответного потока в переменную.

Так что мне нужна функция, похожая на get_headers () только для остальных данных, как get_data (), которая неотменить.Есть ли такая вещь?

Спасибо за чтение.

1 Ответ

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

Используйте curl_exec.Он всегда будет возвращать тело, если для параметра CURLOPT_FAILONERROR не установлено значение TRUE.

. Вот пример:

$url = 'http://www.example.com/thisrequestwillerror';

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);

// This is the default, but just making sure...
curl_setopt($curl, CURLOPT_FAILONERROR, false);

// Execute and return as a string
$str = curl_exec($curl);

curl_close($curl);

// Dump the response body
var_dump($str);

Оберните это в функцию и используйте ее везде, где вам нужнополучить тело HTTP-ответа в вашем приложении.

...