0

我有以下网址:

/eventfunctions.php?eventtype=Don%27t+Touch+The+Floor

当我使用

$_GET['eventtype'];

它显示为 Don\'t 但我无法弄清楚为什么 \ 存在或如何摆脱它。其他 % 符号似乎都没有 \,只有 '.

我如何删除这个\?

4

4 回答 4

1

反斜杠会自动添加到您的$_GET$_POST变量中,因为您激活了 PHP magic_quotes ini 选项。该指令已弃用,而是建议在用户需要时进行转义,而不是自动转义,您可能正在使用旧的 PHP 版本来启用该选项。

如果您的代码将以这种方式与最新的 PHP 版本一起使用,您可以编写可移植代码:

if (get_magic_quotes_gpc()) { //if magic quotes is active
   stripslashes($_GET['eventtype']); //remove escaping slashes
}
于 2012-10-23T21:55:55.197 回答
1
stripslashes($_GET['eventtype']);

或者,如果您没有对 var 进行 url 解码:

stripslashes(urldecode($_GET['eventtype']));
于 2012-10-23T21:48:19.710 回答
1

反斜杠是一个转义字符,添加用于防止字符串中断。

想象

$str = 'Don't';

要删除反斜杠,请使用方法stripslashes

$str = stripslashes($_GET['eventtype']);
于 2012-10-23T21:50:10.990 回答
1

那是因为magic_quotes_gpc

您可以通过在 .htaccess 文件中添加以下行来禁用它:

php_flag magic_quotes_gpc Off

或者只是在您的 php.ini 文件中将 magic_quotes_gpc 值更改为 Off。

于 2012-10-23T21:52:11.253 回答