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 相关文章推荐
一个更简单的无限级分类菜单代码
Jan 16 PHP
PHP得到mssql的存储过程的输出参数功能实现
Nov 23 PHP
使用php计算排列组合的方法
Nov 13 PHP
php基于socket实现SMTP发送邮件的方法
Mar 05 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
Mar 10 PHP
Laravel 5框架学习之Eloquent 关系
Apr 09 PHP
curl和libcurl的区别简介
Jul 01 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
Aug 01 PHP
PHP编程实现阳历转换为阴历的方法实例
Aug 08 PHP
php实现数组中出现次数超过一半的数字的统计方法
Oct 14 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
Feb 16 PHP
php 利用socket发送GET,POST请求的实例代码
Jul 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
利用static实现表格的颜色隔行显示
2006/10/09 PHP
PHP的加密方式及原理
2012/06/14 PHP
Zend的AutoLoad机制介绍
2012/09/27 PHP
PHP-Java-Bridge使用笔记
2014/09/22 PHP
php-beanstalkd消息队列类实例分享
2017/07/19 PHP
php压缩文件夹最新版
2018/07/18 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
农历与西历对照
2006/09/06 Javascript
javascript学习笔记(十九) 节点的操作实现代码
2012/06/20 Javascript
JS获取鼠标坐标的实例方法
2013/07/18 Javascript
使用jquery写个更改表格行顺序的小功能
2014/04/29 Javascript
JavaScript生成随机数的4种自定义函数分享
2015/02/28 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
2015/04/24 Javascript
JavaScript知识点总结之如何提高性能
2016/01/15 Javascript
Node.js实现JS文件合并小工具
2016/02/02 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
2016/02/29 Javascript
JS公共小方法之判断对象是否为domElement的实例
2016/11/25 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
2017/03/31 Javascript
es6基础学习之解构赋值
2018/12/10 Javascript
详解Vue中使用插槽(slot)、聚类插槽
2019/04/12 Javascript
深入解析koa之异步回调处理
2019/06/17 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
[04:26]2014DOTA2国际邀请赛-Newbee顺利进入胜者组决赛 独家专访战神7
2014/07/19 DOTA
总结Python中逻辑运算符的使用
2015/05/13 Python
pandas 数据归一化以及行删除例程的方法
2018/11/10 Python
python实现推箱子游戏
2020/03/25 Python
Pandas统计重复的列里面的值方法
2019/01/30 Python
pytorch中图像的数据格式实例
2020/02/11 Python
如何使用Pytorch搭建模型
2020/10/26 Python
C,C++的几个面试题小集
2013/07/13 面试题
主管职责范文
2013/11/09 职场文书
自动化专业职业生涯规划书范文
2014/01/16 职场文书
求职意向书
2014/07/29 职场文书
玄武湖导游词
2015/02/05 职场文书
如何写通讯稿
2015/07/22 职场文书
工人先锋号事迹材料(2016精选版)
2016/03/01 职场文书