2011-05-31 58 views
0

我需要爲在h1標記中找到的每個錨點標記添加一個自定義類,使所有其他錨點標記保持不變。preg_replace將類添加到錨點標記只在h1個標記之間

目前我有:

$content = preg_replace("/(<h1.*?<a.*?)/i","$1 class=\"mystyle\"",$content); 

與上面的問題是,它只會增加我的同班同學中任何H1頭找到的第一個錨,我真的很努力想出如何糾正這個。

爲了澄清,

<h1><a href="page.html">Lorem</a> ipsum dolor sit <a href="page.html">amet</a>, consectetur adipiscing elit.</h1> 
<h2><a href="page.html">Lorem</a> ipsum dolor sit amet, consectetur adipiscing elit.</h2> 
<p><a href="page.html">Lorem</a> ipsum dolor sit amet, consectetur adipiscing elit.</p> 
<h1><a href="page.html">Lorem</a> ipsum dolor sit <a href="page.html">amet</a>, consectetur adipiscing elit.</h1> 

而成,

<h1><a class="mystyle" href="page.html">Lorem</a> ipsum dolor sit <a href="page.html">amet</a>, consectetur adipiscing elit.</h1> 
<h2><a href="page.html">Lorem</a> ipsum dolor sit amet, consectetur adipiscing elit.</h2> 
<p><a href="page.html">Lorem</a> ipsum dolor sit amet, consectetur adipiscing elit.</p> 
<h1><a class="mystyle" href="page.html">Lorem</a> ipsum dolor sit <a href="page.html">amet</a>, consectetur adipiscing elit.</h1> 

位正則表達式初學者所以道歉,如果這是一個非常愚蠢的問題, 我搜索了幾個小時試圖讓這個我自己,所以我希望有人可以幫助! 乾杯

+1

使用DOM庫解析html。不要正則表達式。 – 2011-05-31 10:16:50

+0

我的正則表達式很弱,所以這是一個很棒的提示。在$ xpath-> query('// h1 // a');!的幫助下完成 – PaulPaul 2011-05-31 11:35:25

+0

這個問題完成了嗎? – 2011-06-12 07:51:03

回答

1

在$ xpath-> query('// h1 // a');的幫助下完成。

相關問題