PHP入门很轻松(微课超值版)
上QQ阅读APP看书,第一时间看更新

5.4.1 转义和还原字符串数据

转义和还原字符串数据有两种方法:一种是自己手动转义和还原字符串数据,另一种是自动转义和还原字符串数据。下面分别对这两种方法进行介绍。

1.手动转义和还原字符串数据

定义字符串有三种方法,分别为单引号(')、双引号(")和定界符(<<<),定义字符串时,很可能在该字符串中存在这几种(',",<<<)与PHP脚本混淆的字符,因此必须要对这几种字符做转义处理。

转义字符,顾名思义,就是把字符变成不同于其原来的含义。转义字符以反斜线“\”开头,后跟一个或几个字符。例如:“'”是字符串的定界符,写为“\'”就失去了定界符的意义,变成了普通单引号“'”。

例如下面的代码:

<?php
echo '游山西村\'莫笑农家腊酒浑,丰年留客足鸡豚.\'';
?>

运行结果输出如下:

游山西村'莫笑农家腊酒浑,丰年留客足鸡豚。'

手动转义的字符串可应用addcslashes()函数进行字符串还原。

2.自动转义和还原字符串数据

简单的字符串建议采用手动的方法进行字符串转义,而对于数量比较大的字符串,建议采用自动转义函数实现字符串的转义。自动转义和还原字符串数据可以使用PHP提供的addslashes()函数和stripslashes()函数来实现。

addslashes()函数返回在预定义字符之前添加反斜杠的字符串。addslashes()函数的语法格式如下:

addslashes(string)

stripslashes()函数删除由addslashes()函数添加的反斜杠。stripslashes()函数的语法格式如下:

stripslashes(string)

【例5-7】自动转义、还原字符串数据(实例文件:源文件\ch05\5.7.php)。

<?php
$str="游山西村'莫笑农家腊酒浑,丰年留客足鸡豚.'";
echo "$str"."<br/>";
echo addslashes($str)."<br />";
echo stripslashes($str)."<br />";
?>

运行结果如图5-8所示。

图5-8 自动转义和还原字符串数据