当字符串包含’小于’和’大于’符号时,我在使用strip_tags
PHP函数时遇到一些问题.例如:
如果我做:
strip_tags("<span>some text <5ml and then >10ml some text </span>");
我去拿:
some text 10ml some text
但是,显然我想得到:
some text <5ml and then >10ml some text
是的我知道我可以使用& lt;和& gt;,但我没有机会将这些字符转换为HTML实体,因为数据已经存储,如您在我的示例中所见.
我正在寻找的是一种解析HTML的聪明方法,以便只删除实际的HTML标记.
由于TinyMCE用于生成该数据,我知道在任何情况下都可以使用哪些实际的html标记,因此strip_tags($string,$black_list)实现比strip_tags($string,$allowable_tags)更有用.
有没有?
作为古怪的解决方法,您可以使用以下方法过滤非html括号:
$html = preg_replace("# <(?![/a-z]) | (?<=\s)>(?![a-z]) #exi","htmlentities('$0')",$html);
之后应用strip_tags().请注意这仅适用于您的特定示例和类似情况.这是一个带有一些启发式的正则表达式,而不是人工智能从未转义的尖括号中辨别出其他含义的html标签.
原文地址:https://www.jb51.cc/php/134139.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。