2013-07-05 3 views
1

PHP 단순 HTML DOM 파서를 사용하여 10.000 이상의 페이지에서 전자 메일 주소를 가져옵니다.간단한 HTML DOM 파서 오류

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()'는 아무것도 찾지 못했기 때문에 반환하는 것은 no -> 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

관련 문제