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

PHP stripcslashes 與 stripslashes 函數深度解析與實戰範例

     編輯:PHP 相關知識

前言

在處理使用者輸入、資料庫存取或表單提交時,反斜線的增減是常見議題。PHP 提供了 addcslashes/stripcslashes 與 addslashes/stripslashes 兩組配對函數,本文詳細說明其定義、語法、參數與實際應用場景,並附上可直接執行的代碼範例。

一、stripcslashes() — 還原 addcslashes() 處理過的字串

定義與用法

stripcslashes() 會移除由 addcslashes() 加入的反斜線,常用於還原經過 C 風格跳脫處理的字串。

語法

stripcslashes(string $string): string

參數說明

參數說明
string必選。需處理的字串。

範例

<?php
$str = 'Hello, my name is Kai Jim.';
// 假設此字串曾經過 addcslashes 處理
echo stripcslashes($str);
// 輸出:Hello, my name is Kai Jim.
?>

提示:此函數適合從資料庫讀回含 C 風格跳脫字元的資料時使用。

二、stripslashes() — 還原 addslashes() 處理過的字串

定義與用法

stripslashes() 移除由 addslashes() 加入的反斜線,常用於清理從資料庫或 HTML 表單取回的資料。

語法

stripslashes(string $string): string

參數說明

參數說明
string必選。需處理的字串。

範例

<?php
$str = \"Who's Kai Jim?\";
// 假設此字串曾經過 addslashes 處理
echo stripslashes($str);
// 輸出:Who's Kai Jim?
?>

提示:關閉 magic_quotes_gpc 後,手動對 $_GET/$_POST/$_COOKIE 使用 stripslashes 可避免重複跳脫。

三、兩者差異快速比較

函數對應反向函數處理字元範圍典型用途
stripcslashesaddcslashesC 風格跳脫序列(\n, \t, \0, 八進位、十六進位)二進位資料、特殊控制字元還原
stripslashesaddslashes單引號、雙引號、反斜線、NULLSQL 查詢字串、表單資料清理

四、最佳實踐建議

  1. 資料庫寫入前:使用 mysqli_real_escape_string 或 PDO 預處理,而非 addslashes。
  2. 資料庫讀出後:若歷史資料含跳脫字元,視原存入方式選用 stripslashes 或 stripcslashes。
  3. JSON 輸出:直接使用 json_encode,無需手動跳脫。
  4. 關閉 magic_quotes:PHP 5.4+ 已移除,舊專案請在 php.ini 設定 magic_quotes_gpc = Off。

結語

理解 stripcslashes 與 stripslashes 的適用場景,能有效避免資料重複跳脫或遺漏跳脫導致的安全漏洞。現代開發建議優先採用參數化查詢與 json_encode,減少手動字串跳脫操作。

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