【问题标题】:How can I strip all html using a preg_replace?如何使用 preg_replace 剥离所有 html?
【发布时间】:2010-03-24 12:16:44
【问题描述】:

strip_tags 仅捕获具有开始和结束标记的标记。使用我正在使用的字符串会导致问题,我需要删除所有 HTML 标记。

【问题讨论】:

  • strip_tags 应该删除所有 HTML 标记。您正在尝试哪些输入没有被剥夺,确切地说?
  • 一般来说,通过正则表达式解析XML/HTML并不是一件好事。尤其是来自用户输入/不受信任来源的 HTML 应始终转换为格式良好的 XML,并使用适当的 XML 工具进行操作。

标签: regex preg-replace


【解决方案1】:

如果您想清理一些 HTML,我建议使用 real HTML 解析器,例如 HTMLPurifier

一般来说,尝试使用正则表达式操作 HTML 往往会以失败告终...

【讨论】:

    【解决方案2】:
    <?php
    
    $html = '<p>Lorem ipsum dolor <br>sit amet, <br />consectetur adipisicing elit</p>';
    echo strip_tags($html);
    
    ?>
    

    ...打印:

    Lorem ipsum dolor sit amet, consectetur adipisicing 精英

    【讨论】:

    • starcraft-source.com/strategy/article/view/?id=205 查看第一段中的 Micro,您可以将鼠标悬停在它上面并查看定义,您可以看到定义中存在的段落标签。
    • @Webnet:如果您不向我们展示原始字符串,那证明不了任何事情。如果你对 title 属性的当前内容运行 strip_tags(),标签会被删除。
    猜你喜欢
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 2011-03-19
    • 2021-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多