我有替换,我想改进从菜单中删除链接。
$n=extract(
preg_replace(
array(
'/<li><a class="selected" href="post_'.$page.'.html">(.+)<\/a><\/li>/i',
'/<li class="nolink">(.+)<\/li>/i',
),
array(
'',
'<li class="nolink">\\1</li>',
),
compact('topmenu','menu','add','counters')
),
EXTR_OVERWRITE);
此代码有效,但我想添加从菜单中删除其他类型的链接。全部使用class =“selected”我尝试编写正则表达式,它将从页面中删除链接但保留锚点。
所以我有正则表达式<a class="selected" href="'.$page.'.html"([^>]+)>([^<]+)<\/a>
这是行不通的。看起来像.html“和之前&gt;。
链接包含标题,可以在.html之后删除rel标记“。所以典型的链接:<a class="selected" href="connect.html" title="Email" rel="nofollow">Email</a>
希望你使用php regex比我好。
答案 0 :(得分:1)
如果您只想删除链接本身,请尝试此操作:
$link = '<a class="selected" href="connect.html" title="Email" rel="nofollow">Email</a>';
echo preg_replace('/(:?href=\")(.+?)(:?\")/', '$1$3', $link);
将输出:
<a class="selected" href="" title="Email" rel="nofollow">Email</a>
或者如果你想完全删除href标签:
$link = '<a class="selected" href="connect.html" title="Email" rel="nofollow">Email</a>';
echo preg_replace('/(href=\".+?\")/', '', $link);
将输出:
<a class="selected" title="Email" rel="nofollow">Email</a>