コードの71行目でこのエラーが発生しますが、この行の関数は正しく実行され、期待どおりに機能します。
ただし、エラーログが次の行でいっぱいになっていることに気付きました。
[2013年12月9日14:54:02 UTC] PHP致命的なエラー:/home/sportve/public_html/open_event_common.phpの非オブジェクトに対するメンバー関数find()の呼び出し71行目
私がチェックしたもの:
simple_html_dom_parser
はすでに含まれており、71行目で実行する予定のこの関数は機能しています。
これが私のコードの71行目です。
$content->find('a.openevent', 0)->innertext = '';
だから、このエラーが私のエラーログファイルに表示されている原因について混乱していますか?
編集:ここに完全なコードがあります:
<?php
$url = "static/" . $cat_map[$cat]['url'];
$html = file_get_html($url);
$content = $html->find('div#event-pane > div#e' . $event_id, 0);
$content->find('a.openevent', 0)->innertext = '';
$content->find('h3.lshtitle', 0)->onclick = '';
$content->find('h3.lshtitle', 0)->tag = 'div';
$content->find('div.lshtitle', 0)->class = 'ttl';
?>
あなたが提供している最良かつ最も実用的なソリューションの情報に基づいて、$html
と$content
が空かどうかを確認するだけです。
「非オブジェクトで[関数が何であれ]メンバー関数を呼び出す」を取得すると、10回のうち9回は、基本的にオブジェクトが存在しないことを意味します。変数が空であることを意味します。これがあなたのコードを作り直したものです:
$url = "static/" . $cat_map[$cat]['url'];
if (!empty($url)) {
$html = file_get_html($url);
if (!empty($html)) {
$content = $html->find('div#event-pane > div#e' . $event_id, 0);
if (!empty($content)) {
$content->find('a.openevent', 0)->innertext = '';
$content->find('h3.lshtitle', 0)->onclick = '';
$content->find('h3.lshtitle', 0)->tag = 'div';
$content->find('div.lshtitle', 0)->class = 'ttl';
}
}
}
また、$url
が空かどうかを確認するチェックも追加しました。