PHP中常用数据过滤方法
来源:互联网 发布:豆瓣怎么推广淘宝商品 编辑:程序博客网 时间:2024/04/28 19:59
PHP中常用数据过滤方法,可有效避免sql注入攻击。
/**
+----------------------------------------------------------* 处理数组,深度转义,加反斜杠
+----------------------------------------------------------
* @param array $data 要处理的字符串
+----------------------------------------------------------
* @return array
+----------------------------------------------------------
*/
function addslashes_deep($data) { if ( is_array($data) ) { foreach ( (array) $data as $k => $v ) { unset($data[$k]); $k=addslashes( $k ); if ( is_array($v) ) $data[$k] = addslashes_deep( $v ); else $data[$k] = addslashes( $v ); } } else { $data = addslashes( $data ); } return $data; }
/**
+----------------------------------------------------------* 处理对象,深度转义,加反斜杠
+----------------------------------------------------------
* @param obj $data 要处理的字符串
+----------------------------------------------------------
* @return obj
+----------------------------------------------------------
*/
function addslashes_deep_obj($obj) { if (is_object($obj) == true) { foreach ($obj AS $key => $val) { $obj->$key = addslashes_deep($val); } } else { $obj = addslashes_deep($obj); } return $obj; }
/**
+----------------------------------------------------------* 处理字符串,反转义,去反斜杠
+----------------------------------------------------------
* @param string $string 要处理的字符串
+----------------------------------------------------------
* @return string
+----------------------------------------------------------
*/
function stripslashes_deep($value) { if (emptyempty($value)) { return $value; } else { return is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value); } }
/**
+----------------------------------------------------------* 处理用户传入的变量,进行转义
+----------------------------------------------------------
* @param none
+----------------------------------------------------------
* @return string
+----------------------------------------------------------
*/
if (!get_magic_quotes_gpc()) { if (!emptyempty($_GET)) { $_GET = addslashes_deep($_GET); } if (!emptyempty($_POST)) { $_POST = addslashes_deep($_POST); } $_COOKIE = addslashes_deep($_COOKIE); $_REQUEST = addslashes_deep($_REQUEST); }
/**
+----------------------------------------------------------* 处理数组,base64 反序列化
+----------------------------------------------------------
* @param array $data
+----------------------------------------------------------
* @return array
+----------------------------------------------------------
*/
function unserialize_base64($data){ if(is_array($data)){ foreach($data as $key=>$item){ if(is_array($item)){ $data[stripslashes(base64_encode($key))] = base64_encoder_multi($item); /**并解决key的问题 如果有引号并去掉引号 stripslashes**/ }else{ $data[stripslashes(base64_encode($key))] = base64_decode($item);/**并解决key的问题 如果有引号并去掉引号 stripslashes**/ } } return $data; }else{ return base64_decode(stripslashes($data)); } } function base64_encoder_multi($data){ if(is_array($data)){ foreach($data as $key=>$item){ if(is_array($item)){ $data[base64_encode($key)] = base64_encoder_multi($item); /**并解决key的问题**/ }else{ $data[base64_encode($key)] = base64_encode($item);/**并解决key的问题**/ } } return $data; }else{ return base64_encode($data); } }
- PHP中常用数据过滤方法
- 90个PHP常用接口数据过滤的方法
- 90个PHP常用接口数据过滤的方法
- 90个PHP常用接口数据过滤的方法
- PHP中4种常用的抓取网络数据方法
- php常用过滤非法/特殊字符串的方法
- php过滤表单数据
- php 数据过滤笔记
- PHP数据过滤
- PHP数据过滤
- PHP中过滤常用标签的正则表达式
- PHP中过滤常用标签的正则表达式
- PHP中过滤常用标签的正则表达式
- PHP中过滤常用标签的正则表达式
- PHP中过滤常用标签的正则表达式
- 最新PHP 经常用到的数据过滤的方法
- php经常用到的数据过滤的方法
- PHP中使用Filter进行数据安全过滤
- android 弹出的软键盘遮挡住EditText文本框的解决方案
- SQL查询速度慢的原因很多
- 2011-7-5学习笔记
- Net WebClient通过代理服务器进行HTTP交互
- 一个可视化的排序演示flash
- PHP中常用数据过滤方法
- [Android开发]AnalogClock和DigitalClock的使用
- 我眼中的排队(二)
- 改变状态栏
- css,pic refresh
- Oracle 索引的维护
- struts标签错误The Struts dispatcher cannot be found.
- 亚马逊平板电脑的十大未解之谜
- 开源项目小结