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 相关文章推荐
文章推荐系统(二)
Oct 09 PHP
php 上传文件类型判断函数(避免上传漏洞 )
Jun 08 PHP
PHP学习笔记之三 数据库基本操作
Jan 17 PHP
PHP爆绝对路径方法收集整理
Sep 17 PHP
PHP基础学习之流程控制的实现分析
Apr 28 PHP
基于Zend的Captcha机制的应用
May 02 PHP
一个php短网址的生成代码(仿微博短网址)
May 07 PHP
THINKPHP项目开发中的日志记录实例分析
Dec 01 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
Apr 15 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
Nov 16 PHP
php实现构建排除当前元素的乘积数组方法
Oct 06 PHP
PHP实现简单的协程任务调度demo示例
Feb 01 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分页类代码
2013/04/02 PHP
Php output buffering缓存及程序缓存深入解析
2013/07/15 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
CI框架(CodeIgniter)操作redis的方法详解
2018/01/25 PHP
[原创]用javascript实现检测指定目录是否存在的方法
2008/01/12 Javascript
jquery HotKeys轻松搞定键盘事件代码
2008/08/30 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
Javascript的各种节点操作实例演示代码
2012/06/27 Javascript
页面只能打开一次Cooike如何实现
2012/12/04 Javascript
JavaScript获取Url里的参数
2014/12/18 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
2015/11/01 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
轻松学习Javascript闭包函数
2015/12/15 Javascript
AngularJS入门教程之Select(选择框)详解
2016/07/27 Javascript
jquery——九宫格大转盘抽奖实例
2017/01/16 Javascript
Nodejs多站点切换Htpps协议详解及简单实例
2017/02/23 NodeJs
ES6中Math对象新增的方法实例详解
2017/04/25 Javascript
详解使用angularjs的ng-options时如何设置默认值(初始值)
2017/07/18 Javascript
jQuery实现菜单栏导航效果
2017/08/15 jQuery
Vue请求java服务端并返回数据代码实例
2019/11/28 Javascript
JS实现躲避粒子小游戏
2020/06/18 Javascript
原生JS运动实现轮播图
2021/01/02 Javascript
Linux下Python获取IP地址的代码
2014/11/30 Python
深入Python函数编程的一些特性
2015/04/13 Python
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
Python多进程并发与多线程并发编程实例总结
2018/02/08 Python
Python3 批量扫描端口的例子
2019/07/25 Python
Python通过kerberos安全认证操作kafka方式
2020/06/06 Python
pytorch 常用函数 max ,eq说明
2020/06/28 Python
细说CSS3中的选择符
2008/10/17 HTML / CSS
台湾良兴购物网:EcLife
2019/12/01 全球购物
路政管理毕业自荐书范文
2014/02/10 职场文书
餐饮企业总经理岗位职责范文
2014/02/18 职场文书
小学毕业典礼主持词
2014/03/27 职场文书
Java Spring Boot 正确读取配置文件中的属性的值
2022/04/20 Java/Android
windows10 家庭版下FTP服务器搭建教程
2022/08/05 Servers