實例
在每個雙引號(")前添加反斜杠:
<?php
$str = addslashes('Shanghai is the "biggest" city in China.');
echo($str);
?>
運行實例:
Shanghai is the \"biggest\" city in China.
定義和用法
addslashes() 函數返回在預定義字符之前添加反斜杠的字符串。
預定義字符是:
- 單引號(')
- 雙引號(")
- 反斜杠(\)
- NULL
提示:該函數可用於為存儲在數據庫中的字符串以及數據庫查詢語句准備字符串。
注釋:默認地,PHP 對所有的 GET、POST 和 COOKIE 數據自動運行 addslashes()。所以您不應對已轉義過的字符串使用 addslashes(),因為這樣會導致雙層轉義。遇到這種情況時可以使用函數 get_magic_quotes_gpc() 進行檢測。
說明
$str )
返回字符串,該字符串為了數據庫查詢語句等的需要在某些字符前加上了反斜線。這些字符是單引號(')、雙引號(")、反斜線(\)與 NUL(NULL 字符)。
一個使用 addslashes() 的例子是當你要往數據庫中輸入數據時。 例如,將名字 O'reilly 插入到數據庫中,這就需要對其進行轉義。 強烈建議使用 DBMS 指定的轉義函數 (比如 MySQL 是 mysqli_real_escape_string(),PostgreSQL 是 pg_escape_string()),但是如果你使用的 DBMS 沒有一個轉義函數,並且使用 \ 來轉義特殊字符,你可以使用這個函數。 僅僅是為了獲取插入數據庫的數據,額外的 \ 並不會插入。 當 PHP 指令 magic_quotes_sybase 被設置成 on 時,意味着插入 ' 時將使用 ' 進行轉義。
PHP 5.4 之前 PHP 指令 magic_quotes_gpc 默認是 on, 實際上所有的 GET、POST 和 COOKIE 數據都用被 addslashes() 了。 不要對已經被 magic_quotes_gpc 轉義過的字符串使用 addslashes(),因為這樣會導致雙層轉義。 遇到這種情況時可以使用函數 get_magic_quotes_gpc() 進行檢測。
參見
- stripcslashes() - 反引用一個使用 addcslashes 轉義的字符串
- stripslashes() - 反引用一個引用字符串
- addcslashes() - 以 C 語言風格使用反斜線轉義字符串中的字符
- htmlspecialchars() - 將特殊字符轉換為 HTML 實體
- quotemeta() - 轉義元字符集
- get_magic_quotes_gpc() - 獲取當前 magic_quotes_gpc 的配置選項設置
