PHP

addslashes

addslashes

(PHP 4, PHP 5, PHP 7)

addslashes - 用斜杠引用字符串

描述

string addslashes ( string $str )

在需要转义的字符之前返回带反斜杠的字符串。这些字符是单引号('),双引号(),反斜线(__)和NULLNULL字节)。

addslashes()的一个示例使用是当您将数据输入到由PHP评估的字符串中时。例如,O'Reilly存储在$ str中,您需要转义$ str。(例如eval(“echo'”.addslashes($ str)。“';”);)

为了逃避数据库参数,DBMS特定的转义函数(例如MySQL的mysqli_real_escape_string()或PostgreSQL的pg_escape_literal(),pg_escape_string())应该用于安全原因。DBMS具有不同于参数的标识符(例如表名,字段名称)的转义规范。一些DBMS如PostgreSQL提供了标识符转义函数pg_escape_identifier(),但不是所有的DBMS都提供标识符转义API。如果是这种情况,请参阅数据库系统手册以获取正确的转义方法。

如果你的DBMS没有转义函数,并且DBMS使用__来转义特殊字符,那么只有当这个转义方法适用于你的数据库时,才可以使用这个函数。请注意,使用addslashes()进行数据库参数转义可能会导致大多数数据库出现安全问题。

默认情况下,PHP指令的magic_quotes_gpc是开启的,PHP 5.4之前,它基本上运行,且addslashes()对所有的GET,POST,COOKIE数据。不要已使用magic_quotes_gpc转义的字符串上使用addslashes(),因为您将执行双重转义。函数get_magic_quotes_gpc()可能会派上用场来检查它。

参数

str

要转义的字符串。

返回值

返回转义字符串。

例子

示例#1 一个addslashes()示例

<?php $str = "Is your name O'Reilly?"; // Outputs: Is your name O\'Reilly? echo addslashes($str ?>

扩展内容

  • stripcslashes() - 使用addcslashes引用不加引号的字符串

  • stripslashes() - 取消引号引用的字符串

  • addcslashes() - 用C样式的斜杠引用字符串

  • htmlspecialchars() - 将特殊字符转换为HTML实体

  • quotemeta() - 引用元字符

  • get_magic_quotes_gpc() - 获取magic_quotes_gpc的当前配置设置

← addcslashes

bin2hex →