2013-02-26 37 views
1

Simple_HTML_Dom非常適合在特定標籤內抓取內容,但我不確定在抓取文本時如何做基本的任何事情。這是一個什麼樣我從刮的代碼看起來像一個例子:使用Simple_HTML_Dom獲取文本後面的特定文本

<span> 
Some code stuff. 
</span> 
FirstWord: 88 
<span> 
More code stuff. 
</span> 

正如你所看到的,FirstWord和88不包含在任何類型的標籤。這使他們很難搶。但是,以下是難題:FirstWord將始終如一 - 只有數字會發生變化。

所以,我的想法是簡單地告訴Simple_HTML_Dom抓住FirstWord後面的數字。問題是我不知道如何做到這一點。

任何幫助,非常感謝。

+0

你可以使用正則表達式嗎?如果是這樣,獲得「FirstWord」將是非常容易的。 '/ FirstWord:\ s [0-9] + /' – 2013-02-26 22:42:27

回答

1
preg_match_all('/FirstWord:\s?([0-9]+)/', $input, $matches); 
print_r($matches); 
+0

這是正確的,但只有一個,所以只是preg_match。 '\ s *'比'\ s?'和'\ d'更好,而不是'[0-9]' – pguardiario 2013-02-27 00:49:51

0

您可以使用排除法,假設你的HTML看起來像這樣..

<html> 
    <head></head> 
    <body> 
     <span>Some code stuff.</span> 
     FirstWord: 88 
     <span>More code stuff.</span> 
    </body> 
</html> 

你可以只通過所有的子元素(循環在這種情況下將是<span>元素),並將其html設置爲空字符串。這會讓你只剩下'FirstWord:88'。

foreach($html->find('body', 0)->children() as $child){ 
    $child->outertext = ""; 
} 

echo $html; 
// Output: 
// FirstWord: 88