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.ini中的php-5.2.0配置指令详解
Mar 27 PHP
php初学者写及时补给skype用户充话费的小程序
Nov 02 PHP
linux下 C语言对 php 扩展
Dec 14 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
Jun 02 PHP
PHP上传图片进行等比缩放可增加水印功能
Jan 13 PHP
php将session放入memcached的设置方法
Feb 14 PHP
thinkphp实现上一篇与下一篇的方法
Dec 08 PHP
Laravel 5框架学习之路由、控制器和视图简介
Apr 07 PHP
php轻量级的性能分析工具xhprof的安装使用
Aug 12 PHP
简单的自定义php模板引擎
Aug 26 PHP
PHP 微信扫码支付源代码(推荐)
Nov 03 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 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
php中session过期时间设置及session回收机制介绍
2014/05/05 PHP
PHP 5.3新增魔术方法__invoke概述
2014/07/23 PHP
php简单定时执行任务的实现方法
2015/02/23 PHP
PHP实现操作redis的封装类完整实例
2015/11/14 PHP
JavaScript动态调整TextArea高度的代码
2010/12/28 Javascript
jQuery实现倒计时按钮功能代码分享
2014/09/03 Javascript
javascript模拟post提交隐藏地址栏的参数
2014/09/03 Javascript
angularJS 中$attrs方法使用指南
2015/02/09 Javascript
angularJS结合canvas画图例子
2015/02/09 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
浅谈原生JS实现jQuery的animate()动画示例
2017/03/08 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
JS实现百度网盘任意文件强制下载功能
2018/08/31 Javascript
Node.js+Express+Mysql 实现增删改查
2019/04/03 Javascript
[05:49]2014DOTA2TI4正赛第二日综述 昔日冠军纷纷落马 VG LGD占尽先机
2014/07/20 DOTA
Python中http请求方法库汇总
2016/01/06 Python
python Celery定时任务的示例
2018/03/13 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
canvas实现俄罗斯方块的方法示例
2018/12/13 HTML / CSS
伦敦最有品味的百货:Liberty London
2016/11/12 全球购物
构造方法和其他方法的区别?怎么调用父类的构造方法
2013/09/22 面试题
安全教育月活动总结
2014/05/05 职场文书
推荐信格式要求
2014/05/09 职场文书
作风建设演讲稿
2014/05/23 职场文书
2014年工作总结与下年工作计划
2014/11/27 职场文书
质量整改通知单
2015/04/21 职场文书
诚信考试承诺书范文
2015/04/29 职场文书
地道战观后感
2015/06/04 职场文书
教研活动主持词
2015/07/03 职场文书
2016年春季运动会加油稿
2015/07/22 职场文书
教师旷工检讨书
2015/08/15 职场文书
参观监狱警示教育心得体会
2016/01/15 职场文书
python识别围棋定位棋盘位置
2021/07/26 Python
Java中的随机数Random
2022/03/17 Java/Android
浅谈Redis的事件驱动模型
2022/05/30 Redis