函式定義
string addslashes ( string $str )
本函式可在PHP4和PHP5下使用。
返回字元串,該字元串為了資料庫查詢語句等的需要在某些字元前加上了反斜線。這些字元是單引號( ')、雙引號( ")、反斜線( \)與 NUL( NULL 字元)。
默認情況下,PHP 指令 magic_quotes_gpc 為 on,它主要是對所有的 GET、POST 和 COOKIE 數據自動運行 addslashes()。不要對已經被 magic_quotes_gpc 轉義過的字元串使用 addslashes(),因為這樣會導致雙層轉義。遇到這種情況時可以使用函式 get_magic_quotes_gpc() 進行檢測。
參數說明
$str
輸入的字元串。
使用場景
一個使用 addslashes() 的例子是當你要往資料庫中輸入數據時。例如,將名字 O'reilly 插入到資料庫中,這就需要對其進行轉義。大多資料庫使用 \ 作為轉義符: O\'reilly。這樣可以將數據放入資料庫中,而不會插入額外的 \。當 PHP 指令 magic_quotes_sybase 被設定成 on 時,意味著插入 ' 時將使用 ' 進行轉義。
使用示例
以下例子是一個簡單的PHP腳本,用來示例addslashes函式的用法。
<?php
$str = "Is your name O'reilly?";
// 輸出:Is your name O\'reilly?
echo addslashes($str);
?>
<?php
$str="\"php\"";
//輸出\\\"php\\\"
echo addslashes($str);
實例
還原addslashes處理過數據
<?php
// 說明: 用 stripslashes 還原 addslashes 轉義後的數據
if(get_magic_quotes_gpc())
{
function stripslashes_deep($value)
{
$value = is_array($value) ? array_map('stripslashes_deep', $value) : (isset($value) ? stripslashes($value) : null);
return $value;
}
$_POST = stripslashes_deep($_POST);
$_GET = stripslashes_deep($_GET);
$_COOKIE = stripslashes_deep($_COOKIE);
}
?>
PHP語言介紹
PHP(PHP:Hypertext Preprocessor)是一種在電腦上運行的腳本語言,主要用途是在於處理動態網頁,也包含了命令行運行接口(command line interface),或者產生圖形用戶界面(GUI)程式。PHP最早由Rasmus Lerdorf在1995年發明,而現在PHP的標準由PHP Group和開放原始碼社區維護。PHP以PHP License作為許可協定,不過因為這個協定限制了PHP名稱的使用,所以和開放原始碼許可協定GPL不兼容。PHP的套用範圍相當廣泛,尤其是在網頁程式的開發上。一般來說PHP大多運行在網頁伺服器上,通過運行PHP代碼來產生用戶瀏覽的網頁。PHP可以在多數的伺服器和作業系統上運行,而且使用PHP完全是免費的。