2011-05-31 59 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');的帮助下完成。

相关问题