Я использую simplehtmldom, который имеет этот функционал:
// get html dom form file
function file_get_html() {
$dom = new simple_html_dom;
$args = func_get_args();
$dom->load(call_user_func_array('file_get_contents', $args), true);
return $dom;
}
Я использую его так:
$html3 = file_get_html(urlencode(trim("$link")));
Иногда URL-адрес может быть недействительным, и я хочу обработать это. Я думал, что могу использовать try и catch, но это не сработало, поскольку оно не генерирует исключение, оно просто дает php-предупреждение:
[06-Aug-2010 19:59:42] PHP Warning: file_get_contents(http://new.mysite.com/ghs 1/) [<a href='function.file-get-contents'>function.file-get-contents</a>]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/example/public_html/other/simple_html_dom.php on line 39
Строка 39 находится в приведенном выше коде.
Как я могу правильно обработать эту ошибку, могу ли я просто использовать обычное условие if
, это не похоже, что он возвращает логическое значение.
Спасибо всем за помощь
Update
Это хорошее решение?
if(fopen(urlencode(trim("$next_url")), 'r')){
$html3 = file_get_html(urlencode(trim("$next_url")));
}else{
//do other stuff, error_logging
return false;
}