首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP daddslashes() 與 saddslashes() 差異分析

     編輯:PHP 綜合知識

daddslashes(Discuz 風格)

function daddslashes($string, $force = 0, $strip = FALSE) {
    if (!MAGIC_QUOTES_GPC || $force) {
        if (is_array($string)) {
            foreach ($string as $key => $val) {
                $string[$key] = daddslashes($val, $force);
            }
        } else {
            $string = addslashes($strip ? stripslashes($string) : $string);
        }
    }
    return $string;
}
  • 參數 $force:強制轉義(忽略 magic_quotes_gpc)。
  • 參數 $strip:先 stripslashes 再 addslashes,防止雙重轉義(用於 $_GET/POST/COOKIE/REQUEST)。
  • 遞歸處理多維數組。

saddslashes(簡化版)

function saddslashes($string) {
    if (!MAGIC_QUOTES_GPC) {
        if (is_array($string)) {
            foreach ($string as $key => $val) {
                $string[$key] = saddslashes($val);
            }
        } else {
            $string = addslashes($string);
        }
    }
    return $string;
}
  • 無 $force、$strip 參數。
  • 僅在 magic_quotes_gpc 關閉時執行單層 addslashes。
  • 不處理已轉義數據的去重問題。

核心差異

特性daddslashessaddslashes
強制模式支援 ($force)不支援
去重轉義支援 ($strip)不支援
適用範圍通用 GPC 過濾簡單場景

現代建議

**棄用兩者**,改用 PDO 預處理語句或 mysqli 參數綁定,從根源解決 SQL 注入,避免手動轉義的疏漏與編碼問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved