2013-03-15 62 views
1

我使用簡單的HTML DOM來解析HTML頁面錯誤..... 這是我的代碼..簡單的HTML DOM工作不正常,表現出

include('simple_html_dom.php'); 


$html = file_get_html($my_url); 


foreach($html->find('div') as $ul) { 
    echo $ul; 
    } 

,我也試過很多其他方法。我仍然得到這個錯誤。 錯誤:

Call to a member function find() on a non-object 

我與其他標籤,以及嘗試了......

$html->find('a'); 
    $html->find('h3'); 
    //But still same above error 

誰能plz幫助我出機智的error..Thanks提前

+1

將'include'更改爲'require',以便在包含失敗時錯誤輸出。只是爲了確保實際上正在加載。 – 2013-03-15 04:07:14

+0

另外,未定義'$ my_url'。 – 2013-03-15 04:07:44

+0

我定義它,我只是做了NT在上面的代碼...... – 2013-03-15 04:08:37

回答

4

嗯,我找到了解決辦法, 解決的辦法是: -

The latest version of simple_html_dom has got bugs in it.... So dont use simplehtmldom_1_5 file from sourceforge... Better use simplehtmldom_1_10 from sourceforge it works fine.

錯誤在simplehtmldom_1_5: -

Url of any site doesnt work here. You can give url of html file , but site url doesnt work It is not identifying ur object $html after reading the url....

希望它可以幫助面臨類似問題的人....

+0

這根本不是真的。我一直在使用1.5,它使用網址。由於版本不同以及處理格式錯誤的html,您可能會得到不同的結果。爲此,適當的解決方案是轉移到基於libxml的解析器,如phpquery。但是,這是一個不同的問題... – pguardiario 2013-03-15 09:17:30

+0

@pguardiario對我來說,至少1.5力度的工作。並根據我的知識phpQuery有一個較差的文檔和支持相比,簡單的dom – 2013-03-15 11:08:12

+0

我明白,它不適合你,但不是因爲1.5不適用於像你說的網址。相反,因爲html格式不正確,並且簡單不能可靠地執行基於libxml的解析器所執行的格式不正確的html。 – pguardiario 2013-03-15 11:46:20

0

您正在使用所以你不能像這樣使用它。

要麼你需要創建vendor(for controller)create helper(for view)

還有一$html已經保留給$html helper

對於供應商的裝載

App::import('Vendor', 'HTMLDOM', array('file' => 'HtmlDom' . DS . 'simple_html_dom.php')); 

對於幫手。

App::import('Helper', 'HtmlDom'); 
$NewHtmlDom = new SimpleHtmlDom; 

$fileContent = $NewHtmlDom->file_get_html($my_url); 
+0

我能夠包括的文件,我已經嘗試過使用簡單的PHP和蛋糕bt相同的錯誤在他們倆 – 2013-03-15 04:21:27

+0

@PavanK,只要你把文件放在正確的目錄,幷包括正確的,不可能是可能的......也確保函數在simpledom php文件中存在。 – 2013-03-15 04:24:06

+0

是的,我檢查和驗證了所有,文件都包括在內,並且找到函數也存在.......... – 2013-03-15 04:26:06