1

我正在使用 php 从数据库中解析一些文章,并且在文章中有一些我想覆盖的链接。链接总是以 " http://cdn.example.com/" 开头,结束解析器是htmlspecialchars_decode($item->parse_articles(), ENT_NOQUOTES).

因此,在将文章传递给 HTML DOM 之前,我想替换所有那些包含 (?) example.com 的 href,或者甚至可能更快且可能<a>完全删除。

<a href="http://cdn.example.com/whatever?else" target="_blank"></a>.

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

4

1 回答 1

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. 替换为“#” class="disabled-link"

这应该可以让您删除链接,并且我还添加了类部分,以便您可以添加一些 CSS 以将链接样式设置为文本。

例子:

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

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

于 2013-07-07T17:41:29.417 回答