addslashes

(PHP 4, PHP 5, PHP 7, PHP 8)

addslashes使用反斜線引用字符串

說(shuō)明

addslashes(string $str): string

返回字符串,該字符串為了數(shù)據(jù)庫(kù)查詢語(yǔ)句等的需要在某些字符前加上了反斜線。這些字符是單引號(hào)(')、雙引號(hào)(")、反斜線(\)與 NUL(null 字符)。

一個(gè)使用 addslashes() 的例子是當(dāng)你要往數(shù)據(jù)庫(kù)中輸入數(shù)據(jù)時(shí)。 例如,將名字 O'reilly 插入到數(shù)據(jù)庫(kù)中,這就需要對(duì)其進(jìn)行轉(zhuǎn)義。 強(qiáng)烈建議使用 DBMS 指定的轉(zhuǎn)義函數(shù) (比如 MySQL 是 mysqli_real_escape_string(),PostgreSQL 是 pg_escape_string()),但是如果你使用的 DBMS 沒(méi)有一個(gè)轉(zhuǎn)義函數(shù),并且使用 \ 來(lái)轉(zhuǎn)義特殊字符,你可以使用這個(gè)函數(shù)。 僅僅是為了獲取插入數(shù)據(jù)庫(kù)的數(shù)據(jù),額外的 \ 并不會(huì)插入。 當(dāng) PHP 指令 magic_quotes_sybase 被設(shè)置成 on 時(shí),意味著插入 ' 時(shí)將使用 ' 進(jìn)行轉(zhuǎn)義。

PHP 5.4 之前 PHP 指令 magic_quotes_gpc 默認(rèn)是 on, 實(shí)際上所有的 GET、POST 和 COOKIE 數(shù)據(jù)都用被 addslashes() 了。 不要對(duì)已經(jīng)被 magic_quotes_gpc 轉(zhuǎn)義過(guò)的字符串使用 addslashes(),因?yàn)檫@樣會(huì)導(dǎo)致雙層轉(zhuǎn)義。 遇到這種情況時(shí)可以使用函數(shù) get_magic_quotes_gpc() 進(jìn)行檢測(cè)。

參數(shù)

str

要轉(zhuǎn)義的字符。

返回值

返回轉(zhuǎn)義后的字符。

范例

示例 #1 一個(gè) addslashes() 例子

<?php
$str 
"Is your name O'reilly?";

// 輸出: Is your name O\'reilly?
echo addslashes($str);
?>

參見(jiàn)