【问题标题】:PHP create hashtag links but NOT inside existent html codePHP 创建主题标签链接,但不在现有的 html 代码中
【发布时间】:2019-02-24 05:17:17
【问题描述】:

我有这个正则表达式可以将哈希标签转换为可点击的链接:

$text = preg_replace('/(?<!\S)#([0-9a-zA-Z]+)/m', '<a href="/tag/$1">#$1</a>', $text, $maximum_tags);

问题是,如果我的文本包含带有样式的 html 标签,它也会转换:

<span style="color:#CCC;">FOO</span>

它会尝试用 #CCC 制作一个主题标签,我应该如何修改正则表达式以仅在 html 标签之外工作?例如在纯文本区域。

【问题讨论】:

    标签: php html regex preg-replace preg-match


    【解决方案1】:

    有条件地对现有标记进行 preg_replace 的词汇努力很高,您应该更喜欢操作诸如 DOM 之类的内容(使用 ext/dom 及其 DOMDocument 类架构)并获取和替换 DOMText 以将标签链接带入现有的 DOM。

    【讨论】:

      猜你喜欢
      • 2020-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多