function_core.php函数daddslashes源码分析
1、if(is_array($string))判断$string是不是数组,是,执行if体。
2、$keys = array_keys($string);array_keys—返回数组中部分的或所有的键名。
3、foreach($keys as $key) {$val = $string[$key];unset($string[$key]);$string[addslashes($key)] = daddslashes($val, $force);}foreach($keys as $key)遍历$string键。$val = $string[$key];赋值给$val。unset($string[$key]);释放变量。$string[addslashes($key)] = daddslashes($val, $force);从这句代码上看,释放变量,目的是这儿可以对键进行addslashes。形参$force没有用处,也没有意义。
4、$string = addslashes($string); 不是数组类型走这句。通常形参$string是字符串类型。这个函数严格来说有BUG。如果传入$string=true,返回字符串类型1。
5、 不做处理,拼接sql语句,保存到数据库,可能存在数据库注入危险。不够小编不建议这样做。小编以前在开发的时候,不对上传的字符做处理,使用mysql_escape_string函数,然后保存到数据库中。小编开发时候一般使用框架,不考虑这些问题。