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