2010-02-22 159 views
0

正如我在前面的問題中所建議的,我使用PHP Simple HTML DOM Parser 作爲搜索HTML文檔並從特定元素(在本例中爲textarea)抓取內容的一種方法。我想知道是否有人曾經使用過,並能夠給我任何建議(或推薦其他解決方案)。該代碼我用這樣的容貌:PHP DOMParser幫助

include "../simple_html_dom.php"; 
$html  = file_get_html('http://example.com'); 
$textarea = $html->find('textarea[id=body]'); 
$contents = $textarea->outertext; 

echo $contents; 

我的問題是,腳本運行的代碼,並從元素檢索任何數據(這看起來是這樣的:

<textarea id="body" name="body" rows="12" cols="75" tabindex="3"> 
At 2/21/10 10:15 PM, You wrote 
: Hello world, 
: how are you today? 

</textarea> 

對不起如果其他人有任何建議,將不勝感激。非常感謝你提前

回答

0

正如你可以在documentation看到find返回一個數組,所以對於初學者你不應該它就好像它是一個節點。此外,你想要的是innertext而不是outertext

這應該工作:

include "../simple_html_dom.php"; 
$html  = file_get_html('http://example.com'); 
$textarea = $html->find('textarea[id=body]'); 
$contents = $textarea[0]->innertext; 

echo $contents; 
0

您鏈接到的網頁顯示如下:

// Find all <div> which attribute id=foo 
$ret = $html->find('div[id=foo]'); 

這表明,我認爲$ret將是一個集合。在句法上,您使用的是與CSS attribute selectors類似的內容。由於此語法旨在推廣到適用於任何屬性,事實上,id應該是唯一的不考慮和集合返回...我懷疑,如果您嘗試這樣的事情...

$ret = $html->find('div#foo'); 

......它可能工作。