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 相关文章推荐
PHP 文章中的远程图片采集到本地的代码
Jul 30 PHP
PHP 变量类型的强制转换
Oct 23 PHP
php Notice: Undefined index 错误提示解决方法
Aug 29 PHP
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
May 18 PHP
php中curl、fsocket、file_get_content三个函数的使用比较
May 09 PHP
ThinkPHP模板判断输出Present标签用法详解
Jun 30 PHP
ThinkPHP 404页面的设置方法
Jan 14 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
Mar 13 PHP
php计算两个文件相对路径的方法
Mar 14 PHP
Discuz论坛密码与密保加密规则
Dec 19 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
Aug 14 PHP
php 中的信号处理操作实例详解
Mar 04 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
js宝典学习笔记(上)
2007/01/10 Javascript
json数据处理技巧(字段带空格、增加字段、排序等等)
2013/06/14 Javascript
判断JS对象是否拥有某种属性的两种方式
2013/12/02 Javascript
JS实现div居中示例
2014/04/17 Javascript
node.js中的path.delimiter方法使用说明
2014/12/09 Javascript
javascript动画系列之模拟滚动条
2016/12/13 Javascript
javascript 正则表达式分组、断言详解
2017/04/20 Javascript
微信小程序使用progress组件实现显示进度功能【附源码下载】
2017/12/12 Javascript
JS中通过url动态获取图片大小的方法小结(两种方法)
2018/10/31 Javascript
JavaScript设计模式之享元模式实例详解
2019/01/17 Javascript
详解基于vue-cli3快速发布一个fullpage组件
2019/03/08 Javascript
利用Promise自定义一个GET请求的函数示例代码
2019/03/20 Javascript
详解vue配置后台接口方式
2019/03/29 Javascript
详解小程序退出页面时清除定时器
2019/04/28 Javascript
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
关于Layui Table隐藏列问题
2019/09/16 Javascript
vue用ant design中table表格,点击某行时触发的事件操作
2020/10/28 Javascript
Python查找相似单词的方法
2015/03/05 Python
利用Python如何生成hash值示例详解
2017/12/20 Python
Python异步操作MySQL示例【使用aiomysql】
2019/05/16 Python
python爬取Ajax动态加载网页过程解析
2019/09/05 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
使用pygame写一个古诗词填空通关游戏
2019/12/03 Python
Anaconda 查看、创建、管理和使用python环境的方法
2019/12/03 Python
CSS3实现点击放大的动画实例代码
2017/02/27 HTML / CSS
英国足球店:UK Soccer Shop
2017/11/19 全球购物
NFL官方在线商店:NFLShop
2020/07/29 全球购物
一套软件开发工程师笔试题
2015/05/18 面试题
对象的序列化(serialization)类是面向流的,应如何将对象写入到随机存取文件中
2015/06/22 面试题
机械设计及其自动化专业推荐信
2013/10/31 职场文书
求职自荐信范文格式
2013/11/29 职场文书
电气自动化求职信
2014/06/24 职场文书
教师反腐倡廉演讲稿
2014/09/03 职场文书
百日宴上的祝酒词
2015/08/10 职场文书
Python list去重且保持原顺序不变的方法
2021/04/03 Python
用Python实现Newton插值法
2021/04/17 Python