Maison >développement back-end >tutoriel php >优化了的addslashes函数

优化了的addslashes函数

WBOY
WBOYoriginal
2016-07-25 09:07:12936parcourir
  1. function daddslashes($string, $force = 0) {
  2. if(!$GLOBALS['magic_quotes_gpc'] || $force) {
  3. if(is_array($string)) {
  4. foreach($string as $key => $val) {
  5. $string[$key] = daddslashes($val, $force);
  6. }
  7. } else {
  8. $string = addslashes($string);
  9. }
  10. }
  11. return $string;
  12. }
复制代码

说明: string addslashes ( string str ) 返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(’)、双引号(”)、反斜线(\)与 NUL(NULL 字符)。

一个使用 addslashes() 的例子是当你要往数据库中输入数据时。例如,将名字 O’reilly 插入到数据库中,这就需要对其进行转义。大多数据库使用 \ 作为转义符:O\’reilly。这样可以将数据放入数据库中,而不会插入额外的 \。当 PHP 指令 magic_quotes_sybase 被设置成 on 时,意味着插入 ‘ 时将使用 ‘ 进行转义。

默认情况下,PHP 指令 magic_quotes_gpc 为 on,它主要是对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。 不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。



Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn