2011-08-14 2 views
0

を用いて、非オブジェクト上で()メンバ関数を見つけるために、呼び出し、私は...エラーを取得しています致命的なエラー:URLが見つからないか、または404報告されていない場合、以下のスクリプトでstr_get_html()

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

どうすればコード化できますか?

function processPage(){ 

    $this->html = scrapePage($this->url); 

    $dom = str_get_html($this->html); 

    $metakws = $dom->find('meta[name=keywords]'); //ERROR OCCURS HERE WHEN URL NOT FOUND 

    //etc... 

    } 
+0

のは、コードのちょうどその部分で失敗しているものを知るのは難しいです。エラーは明らかですが、 '$ dom'は' find() 'というプロパティを持っていません。 – yoda

+0

String Parsingの代わりに[DOM](http://php.net/manual/en/book.dom.php)を実際に使用する[SimpleHtmlDom](http://simplehtmldom.sourceforge.net/)の代替サードパーティ提案:[phpQuery](http://code.google.com/p/phpquery/)、[Zend_Dom](http://framework.zend.com/manual/en/zend.dom.html)、[QueryPath]( http://querypath.org/)と[FluentDom](http://www.fluentdom.org)を参照してください。 – Gordon

+0

ゴードンありがとう。私はプログラマにこれを簡単に書いてもらいました。これらのどれもSimpleHtmlDomのようなPHPインクルードとして含めることができますか? 1回の検索で約10秒かかります。私はそれらがより速くなることを期待するでしょう... –

答えて

2

チェック

if (!$dom) { /*Error*/ } 

それとも

if (!is_object($dom)) { /*Error*/ } 
+1

+1私の最初の思考、それは動作します。ありがとう。 –

+0

いいえ問題のメイト:) –

関連する問題