PHP从通过$ _POST提交的代码中删除反斜杠

时间:2011-06-29 19:40:59

标签: php

我有一个代码编辑器块,并提交如下代码:

$something = "<a href=\"somepage.html\">Link</a>";

然而,当我提交它时,得到输出的字符串缺少反斜杠转义字符,我得到:

$something = "<a href="somepage.html">Link</a>";

......显然不正确。我已经发现它与magic_quotes_gpc有关,当“On”开启时它正常工作。我的目标是让应用程序能够轻松安装在多个主机上,并且我希望避免在每个实例上打开magic_quotes_gpc。

3 个答案:

答案 0 :(得分:0)

Link Here

  

魔术行情已经过折旧   在PHP6中删除。如果你还是   希望你的代码是可移植的,不   警告等,您可以使用PHP52   以下代码。

<?php
    foreach ($_GET as $key => &$val)
        $val = filter_input(INPUT_GET, $key);

    foreach ($_POST as $key => &$val)
        $val = filter_input(INPUT_POST, $key);
?>
  

以上将检索转义   GET和POSTs无论系统如何   设置。它也可以用于   $ _COOKIES和其他人。

答案 1 :(得分:0)

尝试双重转义:

$something = "<a href=\\"somepage.html\\">Link</a>";

答案 2 :(得分:0)

addslashes() - 方法可能正是您要找的。

但是,如果您想直接将这些值放在数据库中,可以使用mysql_real_escape_string() - 方法,或者使用Prepared Statement