我的PHP应用程序通过addslashes()
将反斜杠添加到许多位置的引号中。不幸的是,这种添加产生了类似于以下的输出。如何停止重复反斜杠?
每次刷新我的页面时,此字符串的反斜杠数量都会增加。
不
唐\ '吨
不要\\' T
不要\\\\ 'T
不要\\\\\\\\' T
等。
我想编写一个删除所有这些额外反斜杠的函数。我试过
str_replace($text, "\\\\", "");
无济于事。
我的PHP应用程序通过addslashes()
将反斜杠添加到许多位置的引号中。不幸的是,这种添加产生了类似于以下的输出。如何停止重复反斜杠?
每次刷新我的页面时,此字符串的反斜杠数量都会增加。
不
唐\ '吨
不要\\' T
不要\\\\ 'T
不要\\\\\\\\' T
等。
我想编写一个删除所有这些额外反斜杠的函数。我试过
str_replace($text, "\\\\", "");
无济于事。
你可能只需要使用:
stripslashes($text);
$text=preg_replace('/\134+/',"\134",$text);
会发生什么,如果你的实际值恰好包括\\
合法?例如,如果您的内容是指Windows风格的共享参考 - \\192.168.1.1\foo
。如果你盲目地去掉任何双斜杠,你会去掉那些意思是也在那里。
“正确”的答案实际上是不需要斜线添加到不需要它们的东西。你应该知道给定的值是否已经被转义(毕竟,你是一个控制每个值来自哪里的地方,以及它被用于什么地方)并且只在你需要的时候增加斜线。
发布你的代码会有帮助。它可能是一个神奇的引号问题,或者你如何使用你的addslashes,或者......代码总是最好的方式来获得你的代码问题的具体帮助。但是我倾向于仅使用stripslashes作为输出,或者仅在推测的数据库提交之前使用addslashes。 – Blake 2012-03-29 01:11:40
我认为合理的解决方案是不要调用addslashes()。相反,只需在需要时手动添加斜线。 – Kristian 2012-03-29 01:11:44