从PHP中的mysql\u real\u escape\u字符串输出中剥离斜杠

从PHP中的mysql\u real\u escape\u字符串输出中剥离斜杠,php,mysql,Php,Mysql,我有这样的东西:$foo=mysql\u real\u escape\u string($\u GET[“t”])。让我们假设t=堆栈溢出 在本例中,我回显$foo,它将返回类似于Stack\\\\溢出的内容。我如何停止这种行为,并使$foo等于如果我没有逃脱它,它将是什么 即使使用strip\u slashes()我仍然得到最后一条斜线 我的字符串是这样的: 在搜索框中键入 发布到mysql\u real\u escape\u string()的文件 重定向到搜索?术语=字符串 mysql\u

我有这样的东西:
$foo=mysql\u real\u escape\u string($\u GET[“t”])
。让我们假设t=
堆栈溢出

在本例中,我回显$foo,它将返回类似于
Stack\\\\溢出的内容。我如何停止这种行为,并使$foo等于如果我没有逃脱它,它将是什么

即使使用
strip\u slashes()
我仍然得到最后一条斜线

我的字符串是这样的:

  • 在搜索框中键入
  • 发布到mysql\u real\u escape\u string()的文件
  • 重定向到搜索?术语=字符串
  • mysql\u real\u在$\u GET操作的情况下再次转义它
  • 在数据库中搜索该字符串。它存储在创建时的mysql\u real\u escape\u string()。所以它看起来像数据库中的
    Stack
  • 字符串作为
    Stack的
    (应该是这样的)一直到达最后一页。但是,查询不会返回类似的结果,即使它在数据库中的外观与此完全相同

    编辑:


    而且,当它碰到一个符号时,它就会出错。就像我有t=
    Stack&Overflow
    一样,它只会将
    Stack
    存储在变量$foo中。

    在转义GET变量之前,禁用magic quotes或从GET变量中删除斜杠。

    假设您已经禁用magic_quotes(从php 5.2.0开始,默认设置)这可能仅仅是因为您不止一次地逃避了输出


    检查一下这一点可能会有所帮助,因为函数的目的是按照您的意思,将相同的数据放入数据库中,而不是在检索时被误解的奇数字符。

    为什么要尝试反转
    mysql\u real\u escape\u string
    ?只需将该值的非转义版本存储在另一个变量中~
    stripslashes(stripslashes($str))