2011-03-08 57 views
0

我想從使用PHP的大型HTML頁面中提取超過100個字的文本塊。文本是否包含在<p>...</p>中並不重要。我只關心構成連貫文本塊的單詞數量,因此也應該考慮HTML段落之外的文本。如何從HTML頁面中提取文本塊?

這怎麼辦?

回答

5

我使用phpQuery。你熟悉jQuery嗎?他們共享相同的語法。你可能會擔心安裝一個新的圖書館,但相信我,這個庫是非常值得的額外頭頂

phpQuery

然後,您可以訪問它像這樣:

foreach($doc->find('p') as $element){ 
    $element = pq($element); 
    echo str_word_count($element->text()); 
} 
+1

這對PHP Simple DOM解析器有什麼好處?語法似乎相同。 – lecodesportif 2011-03-08 23:31:06

+0

你可以使用jquery選擇器。所以你可以使用p:last-child,或者p + a,或者p:nth-​​child(2)等等。更大的選擇器靈活性只是其中一個優點,因爲PHP Query可以像服務器到服務器瀏覽器一樣充當服務器通過提出請求,檢索頁面並對其執行一些操作。 – Jason 2011-03-08 23:58:05

+0

@lecodesportif:Simple_HTML_DOM根本沒有錯誤管理的功能。所以當你加載你的文檔時,你無法知道它是否加載。其餘的方法沒有更好的。就我個人而言,我會每天在SHTMLDOM上使用phpQuery。 – 2011-03-09 00:03:50

2

使用PHP Simple DOM Parser

foreach($html->find('p') as $element){ 
    echo str_word_count($element->src); 
} 
+0

有關文本那是什麼不包含在'

...

'? – lecodesportif 2011-03-08 23:25:24

+0

您可以遍歷所有元素,並且可以很容易地挑選出大塊文本。 – fredley 2011-03-08 23:27:48