【问题标题】:PHP regex: make links NOT clickable in menu. remove link but keep anchorPHP 正则表达式:使链接在菜单中不可点击。删除链接但保留锚点
【发布时间】:2014-03-21 10:36:26
【问题描述】:

我有替代品,我想改进它以从菜单中删除链接。

   $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" 我尝试编写正则表达式,它将从页面中删除链接但保持锚点。 所以我有正则表达式&lt;a class="selected" href="'.$page.'.html"([^&gt;]+)&gt;([^&lt;]+)&lt;\/a&gt;,它不起作用。 .html" 之后和 > 之前的匹配似乎有问题。

链接包含标题,可以在 .html" 之后取消 rel 标签。所以典型的链接:&lt;a class="selected" href="connect.html" title="Email" rel="nofollow"&gt;Email&lt;/a&gt; 希望你在 php 正则表达式方面比我做得更好。

【问题讨论】:

标签: php regex replace hyperlink anchor


【解决方案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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    • 2018-09-13
    • 2015-10-06
    • 1970-01-01
    • 2013-06-15
    • 2012-05-01
    相关资源
    最近更新 更多