首页 > PHP 阅读:4

PHP addslashes()和stripslashes():字符串转义

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