2013-07-05 3 views
1

Я использую простой PHP DOM Parser PHP для получения адресов электронной почты с 10.000+ страниц.Простая ошибка HTML DOM Parser

require_once('simple_html_dom.php'); 
$html = file_get_html('http://www.myurl'); 
$email = $html->find('dl', 5)->children(3); 

Иногда получают следующую ошибку. Возможно потому, что некоторые страницы не имеют тег:

Fatal error: Call to a member function children() on a non-object 

Как избежать этой ошибки, если страница не содержит информацию я ищу, не прерывая полный сценарий?

+0

'find()' не удалось найти что-либо, поэтому то, что оно возвращает, не имеет метода -> children(). –

ответ

2

Вы можете проверить, чтобы увидеть, если $email является объектом с помощью функции is_object(), например,

$email = $html->find('dl', 5); 
if(is_object($email) === true) 
{ 
    print_r($email->children(3)); 
} 
else continue; 

Это, вероятно, будет быстрее, чем тестирование для детей с использованием внешней библиотеки, поскольку оно использует функцию, уже присутствующую в PHP-движке.

2

Не связывайте свои методы, если есть неопределенность. Назначают $email = $html->find('dl', 5) - то проверить, есть ли дети, вероятно, с hasChildNodes

Смежные вопросы