2

私はphpが初めてです。
私は得る

致命的なエラー: 非オブジェクト エラーでのメンバー関数 find() の呼び出し、

私は simple_html_dom.php を含めました

<?php
include 'simple_html_dom.php';
$htm = file_get_html('http://www.thatscricket.com');

$es = $htm->find('div[class=score_card_display_below_links]');

$value = $es[0]->href;

$link = "http://www.thatscricket.com/$value";

$html = file_get_html('$link');

$scr = $html->find('span');

echo "$scr";
?>
4

4 に答える 4

2
$html = file_get_html('$link');

これはリテラル文字列を取得しようとします'$link'(変数は一重引用符で囲まれた文字列内では展開されません)。つまり$html、null または false になります。

はオブジェクトではないため$html、メソッドを呼び出すことはできません。

使用する:

$html = file_get_html($link);

また、正常に失敗できるように、失敗によって false または null になる可能性のある戻り値の型を常に確認する必要があります。

于 2013-08-13T10:37:08.210 に答える
0

var_dump($htm)最初に確認してください。null を返す必要があります

于 2013-08-13T10:37:28.007 に答える
0
$htm = file_get_html('http://www.thatscricket.com');

チェックvar_dump($htm); 戻ると思いますbool(false)

$html = file_get_html('$link'); 

する必要があります

$html = file_get_html($link);
于 2013-08-13T10:36:05.360 に答える
0

私はまた、このようなPHPカウント関数からの解決策を見つけた同じエラーを持っていました

if( $htm ){
     $score_card_count = count($htm->find('div[class=score_card_display_below_links]'));
     $score_card_count = trim($score_card_count);
         if( $score_card_count > 0 )
         {
              $es = $htm->find('div[class=score_card_display_below_links]');
              $value = $es[0]->href;
         }
}

このアプローチで問題なく動作することを願っています。私のエラーは修正されました。

于 2014-11-07T07:40:24.000 に答える