从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))
?