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 相关文章推荐
通过ODBC连接的SQL SERVER实例
Oct 09 PHP
PHP利用REFERER根居访问来地址进行页面跳转
Sep 28 PHP
5种PHP创建数组的实例代码分享
Jan 17 PHP
CI框架在CLI下执行占用内存过大问题的解决方法
Jun 17 PHP
php数组查找函数总结
Nov 18 PHP
php使用mysqli向数据库添加数据的方法
Mar 20 PHP
WordPress中对访客评论功能的一些优化方法
Nov 24 PHP
Zend Framework实现多服务器共享SESSION数据的方法
Mar 22 PHP
PHP小偷程序的设计与实现方法详解
Oct 15 PHP
利用switch语句进行多选一判断的实例代码
Nov 14 PHP
php-msf源码详解
Dec 25 PHP
PHP微信发送推送消息乱码的解决方法
Feb 28 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 实现explort() 功能的详解
2013/06/20 PHP
php版小黄鸡simsimi聊天机器人接口分享
2014/01/26 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
PHP实现验证码校验功能
2017/11/16 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
2019/05/14 PHP
漂亮的仿flash菜单,来自蓝色经典
2006/06/26 Javascript
JavaScript实现Sleep函数的代码
2007/03/04 Javascript
jquery中防刷IP流量软件影响统计的一点对策
2011/07/10 Javascript
checkbox使用示例
2013/08/23 Javascript
文本框只能选择数据到文本框禁止手动输入
2013/11/22 Javascript
JavaScript设计模式之抽象工厂模式介绍
2014/12/28 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
js实现图片轮播效果
2015/12/19 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
2016/12/14 Javascript
jQuery实现 上升、下降、删除、添加一行代码
2017/03/06 Javascript
vue2中filter()的实现代码
2017/07/09 Javascript
基于DOM节点删除之empty和remove的区别(详解)
2017/09/11 Javascript
vue动态设置路由权限的主要思路
2021/01/13 Vue.js
Python实现多线程下载文件的代码实例
2014/06/01 Python
Python中函数及默认参数的定义与调用操作实例分析
2017/07/25 Python
详细解读tornado协程(coroutine)原理
2018/01/15 Python
python 实现数组list 添加、修改、删除的方法
2018/04/04 Python
Python 机器学习库 NumPy入门教程
2018/04/19 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
python使用参数对嵌套字典进行取值的方法
2019/04/26 Python
解决Python找不到ssl模块问题 No module named _ssl的方法
2019/04/29 Python
Python socket模块ftp传输文件过程解析
2019/11/05 Python
python使用dlib进行人脸检测和关键点的示例
2020/12/05 Python
HTML5 input元素类型:email及url介绍
2013/08/13 HTML / CSS
美国隐形眼镜网上商店:Lens.com
2019/09/03 全球购物
导游个人求职信范文
2014/03/23 职场文书
小学生倡议书范文
2014/05/13 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
四年级学生期末评语
2014/12/26 职场文书
葬礼主持词
2015/07/02 职场文书
vue实现可拖拽的dialog弹框
2021/05/13 Vue.js