PHP strip_tags() 函数详解

目录

[PHP strip_tags() 函数详解](#PHP strip_tags() 函数详解)

函数作用

基本语法

示例说明

示例1:基本用法

示例2:允许特定标签

示例3:处理用户输入(安全防护)

示例4:保留标签属性

示例5:处理多行HTML

注意事项

替代方案


PHP strip_tags() 函数详解

strip_tags() 是 PHP 中的一个内置函数,用于从字符串中去除 HTML 和 PHP 标签。

函数作用

strip_tags() 的主要作用是:

  1. 过滤字符串中的 HTML 和 PHP 标记

  2. 防止 XSS(跨站脚本)攻击

  3. 在需要纯文本输出的场景中使用

基本语法

复制代码
string strip_tags ( string $str [, string $allowable_tags ] )
  • $str:输入的字符串

  • $allowable_tags:可选参数,指定允许保留的标签

示例说明

示例1:基本用法

php 复制代码
$text = '<p>这是一个段落。</p><!-- 注释 --> <a href="#fragment">链接文本</a>';
$clean_text = strip_tags($text);
echo $clean_text;

输出:

php 复制代码
这是一个段落。 链接文本

示例2:允许特定标签

php 复制代码
$text = '<p>这是一个段落。</p> <b>加粗文本</b> <a href="#fragment">链接</a>';
$clean_text = strip_tags($text, '<p><a>');
echo $clean_text;

输出:

php 复制代码
<p>这是一个段落。</p> 加粗文本 <a href="#fragment">链接</a>

注意:<b>标签被去除了,但<p><a>标签保留了下来。

示例3:处理用户输入(安全防护)

php 复制代码
// 假设这是用户提交的内容
$user_input = '<script>alert("XSS攻击!");</script> <p>正常内容</p>';
$safe_input = strip_tags($user_input);
echo $safe_input;

输出:

php 复制代码
正常内容

示例4:保留标签属性

php 复制代码
$text = '<p style="color:red;">红色文字</p> <img src="image.jpg" alt="图片">';
$clean_text = strip_tags($text, '<p><img>');
echo $clean_text;

输出:

php 复制代码
<p style="color:red;">红色文字</p> <img src="image.jpg" alt="图片">

注意:保留的标签其属性也会被保留。

示例5:处理多行HTML

php 复制代码
$html = <<<HTML
<!DOCTYPE html>
<html>
<head>
    <title>示例页面</title>
</head>
<body>
    <h1>标题</h1>
    <p>正文内容</p>
    <ul>
        <li>项目1</li>
        <li>项目2</li>
    </ul>
</body>
</html>
HTML;
​
$plain_text = strip_tags($html);
echo $plain_text;

输出:

php 复制代码
示例页面 标题 正文内容 项目1 项目2

注意事项

  1. 这个函数不会验证 HTML 的合法性,只是简单地去除标签

  2. 自 PHP 5.3.4 起,自闭合的 XHTML 标签会被忽略

  3. 对于复杂的 HTML 处理,可能需要结合其他函数或使用专门的 HTML 解析器

  4. 该函数不会去除 HTML 实体(如 &amp;&lt; 等)

替代方案

对于更复杂的 HTML 处理,可以考虑:

  • htmlspecialchars() - 将特殊字符转换为 HTML 实体

  • DOMDocument 类 - 提供更强大的 HTML 解析和操作能力

  • 专门的 HTML 净化库如 HTML Purifier

strip_tags() 是一个简单快速的解决方案,适合大多数基本的标签去除需求。

相关推荐
不老刘12 小时前
行为式验证码技术解析:滑块拼图、语序选词与智能无感知
网络安全·验证码·行为式验证码
悠悠~飘14 小时前
php简介(第一天打卡)
php
房屋安全鉴定检测17 小时前
房屋安全鉴定报告有效期多久
安全·网络安全
久绊A17 小时前
Hydra-SSH 破解安全防范
开发语言·php
黑白世界464818 小时前
开源分享: php-tools php gui的一次尝试
后端·php
房屋安全鉴定检测18 小时前
房屋安全鉴定需要什么条件
安全·网络安全
FLS16820 小时前
Kali搭建sqli-labs靶场
linux·sql·安全·网络安全
不是三毛没有半21 小时前
华为USG6000v2 NAT模式下IPSEC IKE V1 实验
网络·网络安全·华为
2503_9284115621 小时前
9.8 ajax+php基础语法
ajax·okhttp·php
普通网友1 天前
支持二次开发的代练App源码:订单管理、代练监控、安全护航功能齐全,一站式解决代练护航平台源码(PHP+ Uni-app)
安全·uni-app·php