如何在PHP中去除HTML标签?

5

我在Symfony项目中使用TinyMCE发布了一些数据。当我检索回来时,如何删除HTML标签?strip_tags无效。


3
"strip_tags not working" - works for me. What did you test? “strip_tags无效”-对我有效。你测试了什么? - symcbean
6个回答

13

最简单的方法是使用strip_tags函数,但它不太可靠。有一个非常好的项目专门为此设计:HTML Purifier

它经过多次实战检验,非常优秀。strip_tags是一种简单、快速且直接的方式,但它可能会漏掉一些格式错误的html代码,而浏览器实际上可以解析和执行它们。


请不要使用正则表达式来解析html!


感谢Emil分享这么精彩的信息。我会在我的下一个项目中使用它。 - Gaurav Sharma

3
请注意,strip_tags返回一个新的字符串。它不会修改原始字符串,即:
$html = '<p>Test</p>';
strip_tags($html); // Throws away the result, since you don't assign the return 
                   // value of the function to a variable

$stripped = strip_tags($html);
echo $stripped; // echos 'Test'

这是相当默认的行为,不是值得一提的。但它是一个不错的例子。 - Mathias Lykkegaard Lorenzen
1
是的,这是非常默认的行为。只是觉得值得一提,因为“没有代码示例就无法工作”并不能给我们提供太多信息。 - PatrikAkerstrand

2
试试这个:
echo strip_tags($this->getContent(ESC_RAW))

1

您可以使用strip_tags

strip_tags('your text or variable');

它应该在Symfony中正常工作。确保你已经做好了一切。


我举个例子:echo strip_tags($var); 然后它会打印出所有的HTML标签。 - user288640

1

strip_tags(); 你需要将你的 $ 变量用 HTML 包裹起来。


1

在使用Symfony时,请务必使用getRaw()函数,否则文本无法从其HTML代码中剥离,例如:

$myText = $sf_data->getRaw('myVarContainingText');

然后使用strip_tags()函数,如下所示:

$myText = strip_tags( $sf_data->getRaw('myVarContainingText') );


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接