(PHP 4, PHP 5, PHP 7, PHP 8)
addslashes — 使用反斜線(xiàn)引用字符串
$str): string
返回字符串,該字符串為了數據庫查詢(xún)語(yǔ)句等的需要在某些字符前加上了反斜線(xiàn)。這些字符是單引號(')、雙引號(")、反斜線(xiàn)(\)與
NUL(null 字符)。
一個(gè)使用 addslashes()
的例子是當你要往數據庫中輸入數據時(shí)。
例如,將名字
O'reilly 插入到數據庫中,這就需要對其進(jìn)行轉義。
強烈建議使用 DBMS 指定的轉義函數
(比如 MySQL 是 mysqli_real_escape_string(),PostgreSQL 是 pg_escape_string()),但是如果你使用的 DBMS 沒(méi)有一個(gè)轉義函數,并且使用 \ 來(lái)轉義特殊字符,你可以使用這個(gè)函數。
僅僅是為了獲取插入數據庫的數據,額外的 \ 并不會(huì )插入。
當 PHP
指令 magic_quotes_sybase
被設置成 on 時(shí),意味著(zhù)插入
' 時(shí)將使用
' 進(jìn)行轉義。
PHP 5.4 之前 PHP 指令
magic_quotes_gpc 默認是 on, 實(shí)際上所有的 GET、POST 和 COOKIE 數據都用被 addslashes() 了。 不要對已經(jīng)被
magic_quotes_gpc
轉義過(guò)的字符串使用
addslashes(),因為這樣會(huì )導致雙層轉義。 遇到這種情況時(shí)可以使用函數
get_magic_quotes_gpc()
進(jìn)行檢測。
str要轉義的字符。
返回轉義后的字符。
示例 #1 一個(gè) addslashes() 例子
<?php
$str = "Is your name O'reilly?";
// 輸出: Is your name O\'reilly?
echo addslashes($str);
?>