【问题标题】:Replace all HTML tags with PHP用 PHP 替换所有 HTML 标签
【发布时间】:2014-01-11 13:24:31
【问题描述】:

我遇到了一些正则表达式的问题。 我正在使用以下正则表达式来获取 html 标签之间的文本。

preg_replace("/<.*>/ix", " ", $input_lines);

此表达式与

配合得很好
<a href="some.html">Somelink

输出是
某链接

但它不适用于

  <a href="some.html">Somelink</a> 

它显示一个空白输出。

我的实际输入是这样的

<a href="some.html">Somelink</a><anytag>Somelink</anytag>

而期望的输出是

Somelink Somelink

所有标签,无论开始标签还是结束标签都被空格替换。

还有一个小问题:

【问题讨论】:

  • 你为什么要复制strip_tags
  • 我希望单词之间有一个空格:|

标签: php html regex


【解决方案1】:

在您的正则表达式中.* 表示在最后一个&gt; 之前

所以应该是.*?

更安全的是[^&gt;]*

【讨论】:

  • “更安全”...直到我将 &gt; 注入到属性值中。
  • 我对html了解不多。如果我可以将&gt; 放在任何属性中,则不应使用[^&gt;]*
【解决方案2】:

如果我理解你的问题,你可以使用这个方法strip_tags

this link 或许对你有帮助

【讨论】:

  • 我用过,它产生的输出为“SomelinkSomelink”
【解决方案3】:

试试strip_tags函数。

要替换,试试这个

$result = preg_replace('/[ ]{2,}/imx', ' ', $subject);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 2013-05-26
    • 2018-10-25
    • 2011-06-17
    • 1970-01-01
    相关资源
    最近更新 更多