先看代码实现:
/* 对用户传入的变量进行转义操作。*/ if (!get_magic_quotes_gpc()) {if (!empty($_GET)){$_GET = addslashes_deep($_GET);}if (!empty($_POST)){$_POST = addslashes_deep($_POST);}$_COOKIE = addslashes_deep($_COOKIE);$_REQUEST = addslashes_deep($_REQUEST); }/*** 递归方式的对变量中的特殊字符进行转义** @access public* @param mix $value** @return mix*/ function addslashes_deep($value) {if (empty($value)){return $value;}else{return is_array($value) ? array_map('addslashes_deep', $value) : addslashes($value);} }
函数解释:
get_magic_quotes_gpc() :
功能: 取得 PHP 环境变数 magic_quotes_gpc 的值。
语法: long get_magic_quotes_gpc(void);
传回值: 长整数
函式种类: PHP 系统功能
本函式取得 PHP 环境设定的变数 magic_quotes_gpc(GPC, Get/Post/Cookie) 值。传回 0 表示关闭本功能;传回 1 表示本功能开启。当magic_quotes_gpc 开启时,所有的 '(单引号), " (双引号), \(反斜线) 和 空字符会 自动转为含有反斜线的溢出字符。
get_magic_quotes_gpc的功能为: 是否为GET、POST、COOKIE传来的数据中的‘ 单引号 “”双引号 \反斜线 加上反斜线
如果get_magic_quotes_gpc = ON ,则返回1,PHP解析器就会自动为post、get、cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别 是数据库语句因为特殊字符引起的污染而出现致命的错误。
addslashes() :
功能: 使用反斜线引用字符串
语法: string addslashes ( string str)
返回值: 返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线()以及(NULL 字符)。