你好,我想使用的preg_match在PHP解析「所需的文本」了,從一個html文檔以下的的Preg匹配文本
<p class="review"> Desired text </p>
通常我會用這樣的事情simple_html_dom但在這種情況下,它不能被使用(上面的元素不會出現在每個需要的div標籤中,所以我不得不使用這種方法來跟蹤它何時不出現,然後相應地調整我的數組從simple_html_dom) 。
無論如何,這將解決我的問題。
非常感謝。
你好,我想使用的preg_match在PHP解析「所需的文本」了,從一個html文檔以下的的Preg匹配文本
<p class="review"> Desired text </p>
通常我會用這樣的事情simple_html_dom但在這種情況下,它不能被使用(上面的元素不會出現在每個需要的div標籤中,所以我不得不使用這種方法來跟蹤它何時不出現,然後相應地調整我的數組從simple_html_dom) 。
無論如何,這將解決我的問題。
非常感謝。
preg_match("'<p class=\"review\">(.*?)</p>'si", $source, $match);
if($match) echo "result=".$match[1];
如果你匹配的字符串有多條線路是:
<p class="review"> Desired text1 </p>
<p class="review"> Desired text2 </p>
<p class="review"> Desired text3 </p>
這種模式將匹配一次,這場比賽將是字符串中的一切。
我想一個更好的模式是:
"'<p class=\"review\">([^<]*)</p>'si"
是的,謝謝,我一直在嘗試過去2小時的東西,我終於意識到股票正在用JavaScript顯示,頁面加載後:(((那麼,那麼,這就是爲什麼該腳本不工作謝謝所有 – 2012-08-09 09:57:51
絕對是正確的答案。 – user1645377 2016-04-28 09:04:56
需要使用preg_match_all()。然後循環遍歷第二個結果組($ match [1])以獲取標籤之間的內容。
$source = "<p class=\"review\"> Desired text1 </p>".
"<p class=\"review\"> Desired text2 </p>".
"<p class=\"review\"> Desired text3 </p>";
preg_match_all("'<p class=\"review\">(.*?)</p>'si", $source, $match);
foreach($match[1] as $val)
{
echo $val."<br>";
}
Outputs:
Desired text1
Desired text2
Desired text3
完美的作品。爲我節省了幾個小時,非常感謝。 – 2009-10-19 03:11:39
不客氣:) – serg 2009-10-19 03:14:55
這難道不會超越嗎?請參閱下面的答案。 – 2010-03-03 05:17:23