6

SimpleHtmldom を使用して、 class を持つ最初の要素のコンテンツを抽出できますdescription

$html = str_get_html($html);
$html->find('.description', 0)

ただし、このクラスが存在しない場合、PHP はエラーをスローします。

Trying to get property of non-object

私は試した

if(!isset($html->find('.description', 0))) {
    echo 'not set';
}

if(!empty($html->find('.description', 0))) {
    echo 'not set';
}

しかし、両方ともエラーが発生します

Can't use method return value in write context

要素が存在するかどうかを確認する適切な方法は何ですか?

4

4 に答える 4

10
if(($html->find('.description', 0))) {
    echo 'set';
}else{
    echo 'not set';
}

http://www.php.net/manual/en/control-structures.if.php

于 2012-08-22T10:36:34.120 に答える
1

SimpleHtmlDOM Apiによると、str_get_html($html) は入力として文字列を想定しています。まず、コードが適切にフォーマットされているかどうかを html バリデーターで確認してください。

$htmlObj = str_get_html($html);
if (!is_object($htmlObj)) return; // catch errors 

// or wrap further code in 
if (is_object($htmlObj)) { /* doWork */ }
于 2012-08-22T10:43:21.040 に答える
-1

私にとっては、上記の解決策はどれも機能せず、最終的にこのようにチェックしました

$html = str_get_html($html);

if($html){
    //html found
}else{
    //html not found
}
于 2016-08-11T11:25:33.393 に答える