使用PHP,给出如下字符串:this is a <strong>string</strong>
;我需要一个函数来去除所有html标记,以便输出为:this is a string
。有任何想法吗?提前谢谢。
答案 0 :(得分:11)
PHP具有内置函数,可以完全按照您的要求执行:strip_tags
$text = '<b>Hello</b> World';
print strip_tags($text); // outputs Hello World
如果您希望破坏HTML,则需要将其加载到DOM解析器中,然后提取文本。
答案 1 :(得分:5)
使用strip_tags怎么样才能做到这一点?
例如(引用文档):
<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";
会给你:
Test paragraph. Other text
编辑:但请注意,strip_tags不会验证您提供的内容。这意味着这段代码:
$text = "this is <10 a test";
var_dump(strip_tags($text));
会得到你:
string 'this is ' (length=8)
(看起来像起始标签之后的所有东西都被删除了。)
答案 2 :(得分:1)
strip_tags
是您追求的功能。你会使用类似这样的东西
$text = '<strong>Strong</strong>';
$text = strip_tags($text);
// Now $text = 'Strong'
答案 3 :(得分:0)
我发现这比单独strip_tags()更有效,因为strip_tags()不会消除javascript或css:
$search = array(
"'<head[^>]*?>.*?</head>'si",
"'<script[^>]*?>.*?</script>'si",
"'<style[^>]*?>.*?</style>'si",
);
$replace = array("","","");
$text = strip_tags(preg_replace($search, $replace, $html));