PHP:如何删除/替换特定的href属性值

时间:2013-07-07 14:24:10

标签: php javascript performance api replace

我正在使用php解析数据库中的一些文章,在文章中有我想要覆盖的链接。链接始终以“http://cdn.example.com/”开头,结束解析器为htmlspecialchars_decode($item->parse_articles(), ENT_NOQUOTES)

所以在将文章传递给HTML DOM之前,我想替换包含(?)example.com的所有href,或者甚至可以更快,更可能删除{{1完全。

<a>

这怎么可能?如果可能,这被认为是更快的选项,而不是首先将它传递给DOM并在客户端从那里操作它?

1 个答案:

答案 0 :(得分:1)

您可以在PHP中尝试以下内容:

$newtext = preg_replace('/^("http:\/\/cdn\.example\.com\/){1}(.*)("){1}$/', '"#" class="disabled-link"', $oldtext);

$ oldtext作为字符串输入文章。 $ newtext是页面上回显的文本。

细分:

  1. 查找以“http://cdn.example.com/
  2. 开头的文字
  3. 然后匹配任何内容
  4. 停在“
  5. 替换为“#”class =“disabled-link”
  6. 这应该让你删除链接,我也添加了类部分,这样你就可以添加一些CSS来将链接设置为文本样式。

    示例:

    .disabled-link{
        color:#000;
        pointer-events: none;
        cursor: default;
        text-decoration: none;
    }
    

    所有这些组合将为用户提供一个完全不可见的链接,而无需查看DOM或源。