2013-07-17 40 views
-1

比如我这样的内容PHP基本正则表达式

<div id="t1" class="tt" tag='t2"><div class="t3">tee</div><a href='#'>test</a><span>test</span><div>asdf</div></div> 

<div id="t1" class="tt" tag='t2"><div class="t3">tee</div><a href='#'>test</a><span>test</span><div>asdf</div></div> 

我想使用的preg_match得到家长的div的内容,所以在这里父div的手段<div id="t1"。我使用preg_match还是有其他方法来获取这些div之间的数据?

+5

(http://stackoverflow.com/a/1732454/57191) – cwallenpoole

+1

你尝试过什么吗?只要在问题标题中加入“advance”,就不会让您在没有自己研究的情况下付出费力的答案。 – mario

回答

5

正则表达式是这个职位的错误的工具。你想要一个DOM解析器。

$dom = new DOMDocument; 
$dom->loadHTML($html); 

$t1 = $dom->getElementById('t1'); 
echo $t1->nodeValue; 

这只会返回你的文字,如果你想innerHTML,试试这个:[!小马]

$dom = new DOMDocument; 
$dom->loadHTML($html); 

$t1 = $dom->getElementById('t1'); 

$innerHTML = ''; 
foreach($t1->childNodes as $child){ 
    $innerHTML .= $dom->saveHTML($child); 
} 
echo $innerHTML;