このコードは何ヶ月もうまく機能しています。出力は、特定のユーザー名の統計を含む数行で構成されていました。HTML ページの元の Web サイトはダウンしfile_get_html
ておらず、ページのコンテンツも変更されていません。突然(私がチェックしたところ、誰も変更していませんでした)、動作しなくなりました。関連する部分は次のとおりです。
[...]if ($FileAge > ($expiretime * 60) || 0 == filesize($cachename))
{
include_once('simple_html_dom.php');
$html = file_get_html('http://www.foo.com/search?what=user%3A'.YOUR_USER.'&search=Search');
var_dump($html); //TEST
$link = $html->find('.likeh4 lightGrey.', 0)->find('a', 0)->href; // Get the last activity link
[...]
エラーログには次のように書かれています:
[02-Feb-2013 17:02:19 Europe/Berlin] PHP Fatal error: Call to a member function find() on a non-object in /foo.php on line 22 (the line with $link).
var_dump($html)
与えるbool(false)
別の Web サイトの HTML ページを解析する同様のスクリプトがあります。それも機能しなくなりました。
[...]include_once('simple_html_dom.php');
$html = file_get_html('http://my.flightmemory.com/'.FLIGHTMEMORY_USER);
$chilometri_table = $html->find('table', 2); [...]
これらの html ページの 1 つを Web サーバーに保存しようとしましたが、そのようなエラーは発生しません。私のホストは、セキュリティ上の理由から一部の php 機能を無効にしましたか? (実際、file_get_html は PHP ネイティブ関数ではなく、simple_html_dom から取得されます)
ヒントはありますか?ありがとう