PHP函数strip_tags的一个bug浅析


Posted in PHP onMay 22, 2014

PHP 函数 strip_tags 提供了从字符串中去除 HTML 和 PHP 标记的功能,该函数尝试返回给定的字符串 str 去除空字符、HTML 和 PHP 标记后的结果。

由于 strip_tags() 无法实际验证 HTML,不完整或者破损标签将导致更多的数据被删除。

比如下述代码:

<div>string</div>string<string<b>hello</b><div>string</div>

通过 strip_tags($str, ‘<div>') 过滤,我们可能期望得到如下结果:

<div>string</div>string<stringhello<div>string</div>

而实际操作结果是这样的:

<div>string</div>string

这一切都是因为加红的那个左尖括号,查了 PHP 的文档,有一个警告提示:

由于 strip_tags() 无法实际验证 HTML,不完整或者破损标签将导致更多的数据被删除。

既然在执行过滤前无法验证代码正确性,遇到和标签相关的字符 “<” 或 “>” 后面的代码就全挂了!

PHP 相关文章推荐
利用static实现表格的颜色隔行显示
Oct 09 PHP
fleaphp crud操作之find函数的使用方法
Apr 23 PHP
用PHP实现的四则运算表达式计算实现代码
Aug 02 PHP
php比较多维数组中值的大小排序实现代码
Sep 08 PHP
php 5.6版本中编写一个PHP扩展的简单示例
Jan 20 PHP
php从完整文件路径中分离文件目录和文件名的方法
Mar 13 PHP
php查询mysql数据库并将结果保存到数组的方法
Mar 18 PHP
php生成验证码函数
Oct 20 PHP
CodeIgniter框架常见用法工作总结
Mar 16 PHP
PHP实现下载远程图片保存到本地的方法
Jun 19 PHP
PHP中的访问修饰符简单比较
Feb 02 PHP
laravel 实现根据字段不同值做不同查询
Oct 23 PHP
PHP学习笔记之字符串编码的转换和判断
May 22 #PHP
PHP+memcache实现消息队列案例分享
May 21 #PHP
php+highchats生成动态统计图
May 21 #PHP
PhpDocumentor 2安装以及生成API文档的方法
May 21 #PHP
Smarty模板学习笔记之Smarty简介
May 20 #PHP
php实例分享之mysql数据备份
May 19 #PHP
dedecms函数分享之获取某一栏目所有子栏目
May 19 #PHP
You might like
PHP 图片上传代码
2011/09/13 PHP
解析PHP处理换行符的问题 \r\n
2013/06/13 PHP
PHP中UNIX时间戳和日期间的转换与计算实例
2014/11/19 PHP
tp5实现微信小程序多图片上传到服务器功能
2018/07/16 PHP
浅谈javascript 迭代方法
2015/01/21 Javascript
在JavaScript中操作数组之map()方法的使用
2015/06/09 Javascript
jQuery css() 方法动态修改CSS属性
2016/09/25 Javascript
javascript代码调试之console.log 用法图文详解
2016/09/30 Javascript
javascript事件的传播基础实例讲解(35)
2017/02/14 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
2017/07/17 Javascript
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
js+canvas实现验证码功能
2020/09/21 Javascript
微信小程序从注册账号到上架(图文详解)
2019/07/17 Javascript
JavaScript Reflect Metadata实现详解
2019/12/12 Javascript
将Emacs打造成强大的Python代码编辑工具
2015/11/20 Python
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
使用pygame模块编写贪吃蛇的实例讲解
2018/02/05 Python
Python测试人员需要掌握的知识
2018/02/08 Python
TensorFlow实现MLP多层感知机模型
2018/03/09 Python
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
Window10下python3.7 安装与卸载教程图解
2019/09/30 Python
Pytorch基本变量类型FloatTensor与Variable用法
2020/01/08 Python
对tensorflow中cifar-10文档的Read操作详解
2020/02/10 Python
Python实现GIF图倒放
2020/07/16 Python
Python如何读写CSV文件
2020/08/13 Python
python上下文管理的使用场景实例讲解
2021/03/03 Python
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
JAVA和C++的区别
2013/10/06 面试题
局域网定义和特性
2016/01/23 面试题
金融管理专业毕业生求职信
2014/03/12 职场文书
超市优秀员工获奖感言
2014/08/15 职场文书
主持人开场白台词
2015/05/29 职场文书
小学运动会前导词
2015/07/20 职场文书
python全面解析接口返回数据
2022/02/12 Python
SQL CASE 表达式的具体使用
2022/03/21 SQL Server