如何可以解析PHP變量舉行,如果它像HTML代碼:
<h1>T1</h1>Lorem ipsum.<h1>T2</h1>The quick red fox...<h1>T3</h1>... jumps over the lazy brown FROG!
我想到只得到標題之間的文字,我明白使用正則表達式不是一個好主意。
如何可以解析PHP變量舉行,如果它像HTML代碼:
<h1>T1</h1>Lorem ipsum.<h1>T2</h1>The quick red fox...<h1>T3</h1>... jumps over the lazy brown FROG!
我想到只得到標題之間的文字,我明白使用正則表達式不是一個好主意。
使用PHP Document Object Model:
<?php
$str = '<h1>T1</h1>Lorem ipsum.<h1>T2</h1>The quick red fox...<h1>T3</h1>... jumps over the lazy brown FROG';
$DOM = new DOMDocument;
$DOM->loadHTML($str);
//get all H1
$items = $DOM->getElementsByTagName('h1');
//display all H1 text
for ($i = 0; $i < $items->length; $i++)
echo $items->item($i)->nodeValue . "<br/>";
?>
這是輸出:
T1
T2
T3
[編輯]:OP澄清後:
如果你想要的內容類似Lorem ipsum。等,可以直接使用這個表達式:
<?php
$str = '<h1>T1</h1>Lorem ipsum.<h1>T2</h1>The quick red fox...<h1>T3</h1>... jumps over the lazy brown FROG';
echo preg_replace("#<h1.*?>.*?</h1>#", "", $str);
?>
此輸出:
的Lorem ipsum.The快速赤狐......跳通過惰性林蛙
謝謝,但我需要得到
之間的文本,如: 「Lorem ipsum。」,「快速紅狐狸......」等。因此,不是H1標籤之間的文本,而是文本之間的文本結尾標籤和開始@Francisc,我已經更新了答案。 – shamittomar 2010-09-02 16:53:41
更近了,謝謝。 我會盡量做得更清楚:我想獲取標題之間的文本,計算其長度並決定是否要隱藏其中的一部分。 雖然你的回答非常有幫助。但是我想要做的就是保留所有文本,只需添加一些html來隱藏它的一部分。 – Francisc 2010-09-02 17:29:37
每個關閉這個的人都是重複的。這是不同的,因爲OP不需要文本'T1,T2,T3',但是一個標題之後的文本結束並且在下一個標題開始之前。例如'Lorem ipsum.'。所以,*這個*是不同的。請看一下。 – shamittomar 2010-09-03 10:03:42