如何检查find是否返回null?

时间:2016-11-27 11:12:53

标签: php html parsing dom text

我正在处理一个动态的页面,有时候它有元素,有时却没有。

$data2 = $data1->find("tr td");

有没有办法可以检查下面的代码是否返回null?找到它时它工作正常但是当它不是时会抛出错误:

  

致命错误:在第175行的/Applications/MAMP/htdocs/rs/login.php中调用null上的成员函数find()

全功能代码:

		$url = "http://services.runescape.com/m=hiscore_oldschool/hiscorepersonal.ws?user1=";
		$link = $url . $name;
		$html = file_get_html($link);

		$data1 = $html->find("div[id=contentHiscores] table tbody",0); 
		$data2 = $data1->find("tr td");	
		
		$data2 = (!empty($data1)) ? $data1->find("tr td") : null;
		if(empty($data2)){
		    echo 'empty';
		}else{
		    echo 'do something';
		}

1 个答案:

答案 0 :(得分:1)

这是$data1变量中的问题。当$data1为null时,它会抛出错误。

$url = "http://services.runescape.com/m=hiscore_oldschool/hiscorepersonal.ws?user1=";
$link = $url . $name;
$html = file_get_html($link);

$data1 = (!empty($html)) ? $html->find("div[id=contentHiscores] table tbody",0) : null; 
$data2 = (!empty($data1)) ? $data1->find("tr td") : null;

if(empty($data2)){
    echo 'empty';
}else{
    echo 'do something';
}