2016-11-27 4 views
0

Im работает на странице, которая динамична, а иногда она имеет элементы, а иногда и нет.Как проверить, возвращается ли поиск как null?

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

Есть ли способ, что я могу проверить, если ниже код возвращает нуль? Он отлично работает, когда он найден, но он выдает ошибку, когда это не так:

Fatal error: Call to a member function find() on null in /Applications/MAMP/htdocs/rs/login.php on line 175

полный код функции:

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

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

+0

если (пусто ($ data2)) ИЛИ если (нуль === $ data2) – Ima

ответ

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'; 
} 
+0

Было бы эхо 'Сделай что-нибудь', но это никогда не будет эхо 'Empty'. Такая же ошибка. Я также добавил полную ссылку в моем первоначальном сообщении. – Potion

+0

@ Код ссылки обновлен. –

+0

он отлично работает! – Potion

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