可能重复:
“每个引用前的斜线”问题
我使用如下代码在我的 php 应用程序的不同部分之间传递消息:
$msg='"'.$_REQUEST['site'].'" modified.';
header('Location: sites.php?msg='.$msg);
exit();
在另一端获取它的代码如下所示:
<?php if (isset($_GET['msg'])) {echo '<p><em>'.$_GET['msg'].'</em></p>';}?>
在我的开发环境中,输出如下所示:"Some site"
已修改。在我的生产环境中,输出如下所示:\"Some site\"
已修改。
这使我相信这是php.ini
环境之间设置的差异。我一直在寻找,直到我的眼球起泡,但我找不到区别。url 中传递的内容如下所示:
sites.php?msg="Some site" modified
如果我把这段代码:
$msg=htmlspecialchars($msg);
在上面的变量赋值和标头调用之间,url 如下所示:
sites.php?msg="Some site" modified.
但在这两种环境中都不会显示任何消息。$_REQUEST['site']
如果包含&符号,我也有类似的问题。
谁能解释这里发生了什么,以及如何解决它?