1

PHP Simple HTML DOM Parser を使用して、10.000 以上のページから電子メール アドレスを取得しています。

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

ページに探している情報が含まれていない場合に、スクリプト全体を中断せずにこのエラーを回避するにはどうすればよいですか?

4

2 に答える 2

2

不確実性がある場合は、メソッドを連鎖させないでください。割り当て$email = $html->find('dl', 5)- 次に、おそらく子があるかどうかをテストしますhasChildNodes

于 2013-07-05T21:02:41.713 に答える
2

関数$emailを使用してオブジェクトであるかどうかをテストできます。is_object()

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

これは、PHP エンジンに既に存在する関数を使用するため、外部ライブラリを使用して子をテストするよりもおそらく高速です。

于 2013-07-05T21:57:26.200 に答える