使用strip_tags()函数可快速去除HTML标签,保留纯文本;需精细控制时可用preg_replace()配合正则表达式过滤特定标签;结合htmlspecialchars_decode()处理实体字符,适用于文本提取、XSS防护等场景。

在PHP开发中,经常需要从字符串中去除HTML标签,比如处理用户输入、提取纯文本内容或防止XSS攻击。PHP提供了多种方式来清除HTML标签,下面介绍几种实用且常用的方法。
strip_tags() 是PHP内置函数,专门用于去除字符串中的HTML和PHP标签,保留纯文本内容。
基本语法:
strip_tags($string, $allowed_tags);
参数说明:
立即学习“PHP免费学习笔记(深入)”;
示例:
$html = "<p>这是一段<b>加粗</b>的文字</p>"; echo strip_tags($html); // 输出:这是一段加粗的文字 echo strip_tags($html, '<br><p>'); // 输出:<p>这是一段<b>加粗</b>的文字</p>(只保留 p 和 br 标签)
如果需要更精细地控制去除哪些标签或处理特定格式,可以使用 preg_replace() 配合正则表达式。
例如,完全清除所有HTML标签:
$html = "<div class='test'>内容:<a href='#'>链接</a></div>";
$text = preg_replace('/<[^>]+>/','',$html);
echo $text; // 输出:内容:链接
你也可以定制正则,比如只去除script、style等危险标签:
$dangerous = '/<(script|style|iframe)[^>]*>.*?</\1>/is'; $safe_html = preg_replace($dangerous, '', $html);
有时去除标签后,还会遇到 HTML 实体(如 、htmlspecialchars_decode() 将其还原为普通字符。
示例:
$string = "Hello <b>World</b>"; $clean = strip_tags(htmlspecialchars_decode($string)); echo $clean; // 输出:Hello World( 转为空格)
根据使用场景选择合适方法:
基本上就这些。strip_tags() 能满足大多数去标签需求,正则提供更高自由度,搭配字符解码函数可获得更干净的文本输出。不复杂但容易忽略细节,注意保留必要标签和安全过滤即可。
以上就是PHP字符串去除标签怎么做_PHP清除HTML标签的实用方法的详细内容,更多请关注php中文网其它相关文章!
HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号