0

このコードは何ヶ月もうまく機能しています。出力は、特定のユーザー名の統計を含む数行で構成されていました。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 から取得されます)

ヒントはありますか?ありがとう

4

2 に答える 2

1

おそらく手遅れ
ですが、 Simple_html_dom には、指定された html サイズをチェックするための定数があります - MAX_FILE_SIZE。デフォルトでは 600KB です。ほとんどの場合はこれで十分ですが、指定された html がそれよりも大きい場合、失敗して戻りfalse、致命的なエラーが発生します。

于 2013-06-09T13:54:11.100 に答える