如何停止重复反斜杠?

时间:2012-03-29 01:08:42

标签: php backslash

我的PHP应用程序在addslashes()的许多位置为引号添加反斜杠。不幸的是,这种添加产生的输出类似于以下内容。

每次刷新页面时,此字符串都会以反斜杠的数量增加。


别\'吨
别\\'吨
别\\\\'吨
别\\\\\\\\'T

等等。

我想编写一个删除所有这些额外反斜杠的函数。我试过了

str_replace($text, "\\\\", "");

无济于事。

3 个答案:

答案 0 :(得分:1)

您可以使用:

 stripslashes($text);

答案 1 :(得分:1)

$text=preg_replace('/\134+/',"\134",$text);

答案 2 :(得分:1)

如果您的实际值恰好包含\\,会发生什么?例如,如果您的内容指的是Windows样式的共享引用 - \\192.168.1.1\foo。如果你盲目地删除任何双斜线,你也会删除那些意味着的那些斜杠。

“正确”的答案实际上是不向不需要它们的东西添加斜线。你应该知道给定的值是否已经被转义(毕竟,你是控制每个值来自哪个值以及它用于什么的那个)并且只在需要时添加斜杠。