PHP addslashes()和stripslashes():字元串轉義

  • 2020 年 2 月 26 日
  • 筆記

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