我有以下网址:
/eventfunctions.php?eventtype=Don%27t+Touch+The+Floor
当我使用
$_GET['eventtype'];
它显示为 Don\'t 但我无法弄清楚为什么 \ 存在或如何摆脱它。其他 % 符号似乎都没有 \,只有 '.
我如何删除这个\?
反斜杠会自动添加到您的$_GET
和$_POST
变量中,因为您激活了 PHP magic_quotes ini 选项。该指令已弃用,而是建议在用户需要时进行转义,而不是自动转义,您可能正在使用旧的 PHP 版本来启用该选项。
如果您的代码将以这种方式与最新的 PHP 版本一起使用,您可以编写可移植代码:
if (get_magic_quotes_gpc()) { //if magic quotes is active
stripslashes($_GET['eventtype']); //remove escaping slashes
}
stripslashes($_GET['eventtype']);
或者,如果您没有对 var 进行 url 解码:
stripslashes(urldecode($_GET['eventtype']));
反斜杠是一个转义字符,添加用于防止字符串中断。
想象
$str = 'Don't';
要删除反斜杠,请使用方法stripslashes
$str = stripslashes($_GET['eventtype']);
那是因为magic_quotes_gpc。
您可以通过在 .htaccess 文件中添加以下行来禁用它:
php_flag magic_quotes_gpc Off
或者只是在您的 php.ini 文件中将 magic_quotes_gpc 值更改为 Off。