从字符串中删除所有html标记的最佳方法是什么?

4 html php string

使用PHP,给出如下字符串:this is a <strong>string</strong>; 我需要一个函数去掉所有的html标签,以便输出:this is a string.有任何想法吗?提前致谢.

Pao*_*ino 11

PHP有一个内置函数,可以完全满足您的需求: strip_tags

$text = '<b>Hello</b> World';
print strip_tags($text); // outputs Hello World
Run Code Online (Sandbox Code Playgroud)

如果您希望破坏HTML,则需要将其加载到DOM解析器中,然后提取文本.


Pas*_*TIN 5

如何使用strip_tags,它应该只做这项工作?

例如(引用文档):

<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";
Run Code Online (Sandbox Code Playgroud)

会给你 :

Test paragraph. Other text
Run Code Online (Sandbox Code Playgroud)

编辑:但请注意,strip_tags不会验证您提供的内容.这意味着这段代码:

$text = "this is <10 a test";
var_dump(strip_tags($text));
Run Code Online (Sandbox Code Playgroud)

会得到你:

string 'this is ' (length=8)
Run Code Online (Sandbox Code Playgroud)

(看起来像起始标签的东西之后的所有内容都被删除).