С помощью simplexml_load_file я хотел бы различать тайм-аут и ошибки 404

В настоящее время я использую:

$page = simplexml_load_file('http://www.example.com/page.html');

В моем коде я хотел бы повторить попытку, если время ожидания страницы истекло, но если страница не найдена (404), я хотел бы добавить ее в список не найденных страниц.

Если бы я мог различать два типа ошибок, я бы сделал все остальное.

Для любопытных вы можете получить код состояния с помощью следующего кода:

if ($page == FALSE) 
{
  list($version,$status_code,$msg) = explode(' ',$http_response_header[0], 3);
  echo 'Status Code: '.$status_code."\n";

   ...

Но так как я хотела сделать завитки, получилось лучше.


person Rob    schedule 16.05.2009    source источник
comment
возможный дубликат Простой способ проверить URL-адрес для 404 в PHP?   -  person hakre    schedule 24.06.2013


Ответы (1)


Думаю, для этого вам нужно использовать curl. Curl может сказать вам, если истекло время ожидания запроса или вернулось 404. Если ничего из этого не произошло, вы можете просто передать результаты запроса в simplexml_load_string.

http://nl2.php.net/curl

person Pim Jager    schedule 16.05.2009