在 PHP 開發中,處理字串跳脫是常見需求。addcslashes() 與 stripcslashes() 是一組配套函數,分別用於在指定字元前加上反斜線跳脫,以及移除字串中的反斜線。本文將詳細說明這兩個函數的語法、參數與實際應用範例。
a..z)<?php
$sql = "update book set bookname='let's go' where bookid=1";
echo $sql . "<br>";
// 原始輸出:update book set bookname='let's go' where bookid=1
$new_sql = addcslashes($sql, "'");
echo $new_sql . "<br>";
// 跳脫後:update book set bookname=\'let\'s go\' where bookid=1
$new_sql_01 = stripcslashes($new_sql);
echo $new_sql_01;
// 還原後:update book set bookname='let's go' where bookid=1
?>
字元範圍指定: charlist 參數支援範圍寫法,例如 'A..Z' 會跳脫所有大寫字母,'\0..\37' 則跳脫所有控制字元。
常見跳脫字元:
\n - 換行符\r - 回車符\t - 定位符\\ - 反斜線本身mysqli_real_escape_string(),而非手動跳脫。addcslashes() 較適合特定格式輸出(如 C 風格字串、正則模式)場景。
| 函數 | 用途 | 典型應用場景 |
|---|---|---|
addcslashes() |
在指定字元前加反斜線 | 產生 C/Perl 風格跳脫字串、正則模式預處理 |
stripcslashes() |
移除反斜線跳脫 | 還原被 addcslashes() 處理過的字串 |