php daddslashes()和 saddslashes()有哪些区别分析

yipeiwu_com5年前PHP代码库

//GPC过滤,自动转义$_GET,$_POST,$_COOKIE中的特殊字符,防止SQL注入攻击
$_GET = saddslashes($_GET);
$_POST = saddslashes($_POST);

复制代码 代码如下:

下面是daddslashes()和 saddslashes()的例子eg: saddslashes function daddslashes($string, $force = 0, $strip = FALSE) {
//字符串或数组 是否强制 是否去除
//如果魔术引用未开启 或 $force不为0
if(!MAGIC_QUOTES_GPC || $force) {
if(is_array($string)) { //如果其为一个数组则循环执行此函数
foreach($string as $key => $val) {
$string[$key] = daddslashes($val, $force);
}
} else {
//如果魔术引用开启或$force为0
//下面是一个三元操作符,如果$strip为true则执行stripslashes去掉反斜线字符,再执行addslashes
//$strip为true的,也就是先去掉反斜线字符再进行转义的为$_GET,$_POST,$_COOKIE和$_REQUEST $_REQUEST数组包含了前三个数组的值
//这里为什么要将$string先去掉反斜线再进行转义呢,因为有的时候$string有可能有两个反斜线,stripslashes是将多余的反斜线过滤掉
  $string = addslashes($strip ? stripslashes($string) : $string);
}
}
return $string;
}eg: saddslashes function saddslashes($string) { if(!MAGIC_QUOTES_GPC){
if(is_array($string)) { //如果转义的是数组则对数组中的value进行递归转义
    foreach($string as $key => $val) {
      $string[$key] = saddslashes($val);
      }
} else {
    $string = addslashes($string); //对单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符),进行转义
}
return $string;
}else{
return $string;
}

主要就是:
saddslashes可以实现对每一个数据进行转义处理了
复制代码 代码如下:

function saddslashes($string) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = saddslashes($val);
}
} else {
$string = addslashes($string);
}
return $string;
}

相关文章

PHP实现的激活用户注册验证邮箱功能示例

本文实例讲述了PHP实现的激活用户注册验证邮箱功能。分享给大家供大家参考,具体如下: 这里将结合实例介绍如何使用PHP+Mysql完成注册帐号、发送激活邮件、验证激活帐号、处理URL链接...

常见的PHP五种设计模式小结

常见的PHP五种设计模式小结

设计模式 一书将设计模式引入软件社区,该书的作者是 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides Design(俗称 “...

php实现RSA加密类实例

本文实例讲述了php实现RSA加密类。分享给大家供大家参考。具体分析如下: 通过openssl实现的签名、验签、非对称加解密,需要配合x.509证书(如crt和pem)文件使用。 由于各...

php curl批处理实现可控并发异步操作示例

本文实例讲述了php curl批处理实现可控并发异步操作。分享给大家供大家参考,具体如下: 通常情况下 PHP 中的 cURL 是阻塞运行的,就是说创建一个 cURL 请求以后必须等它执...

php5.3 不支持 session_register() 此函数已启用的解决方法

php从5.2.x升级到5.3.2.出来问题了。有些原来能用的程序报错了。报错内容是Deprecated: Function session_register() is deprecat...