PHP addslashes()和stripslashes():字串跳脫

2020-07-16 10:05:12
PHP 中使用 addslashes() 函數跳脫字串。所謂字串跳脫,就是在某些特殊字元前面加上跳脫符號,這些特殊字元包括單引號'、雙引號"、反斜線與空字元NUL

addslashes() 函數的語法格式如下:

string addslashes ( string $str )

該函數返回跳脫後的字串,引數 $str 是要被跳脫的字元。

一個使用 addslashes() 的例子是往資料庫中輸入資料,例如將名字O'reilly插入資料庫中,就需要對其進行跳脫。

我強烈建議使用 DBMS 指定的跳脫函數,比如 MySQL 是 mysqli_real_escape_string(),PostgreSQL 是 pg_escape_string(),但是如果你使用的 DBMS 沒有一個跳脫函數,並且需要使用來跳脫特殊字元,那麼就可以使用 addslashes() 函數。僅僅是為了獲取插入資料庫的資料,額外的並不會插入。

當 PHP 指令 magic_quotes_sybase 被設定成 on 時,意味著插入'時將使用'進行跳脫。

跳脫字串的範例如下:
<?php
$str = "I don't love you";
echo addslashes($str);
?>
執行以上程式的結果為:

I don't love you


stripslashes() 函數可以還原經 addslashes()跳脫的字串,它的語法格式如下:

string stripslashes( string $str )

該函數返回未經跳脫的原始字串,引數 $str 是跳脫後的字串。

還原跳脫字串的範例如下:
<?php
$str = "I don't love you";
$str1 = addslashes($str);
echo $str1 . "<br />";
echo stripslashes($str1) . "<br />";
?>
以上程式的執行結果為:

I don't love you
I don't love you