1

有没有一种方法或功能可以删除许多添加斜杠,如下所示

 \\\\\\\"Oracle DBA\\\\\\\"

使用 stripslashes() 只会删除一个斜线,

我必须使用 preg_replace 吗?像这样

preg_replace(/^\\(.*)/,"",$subject);

与这项工作?

4

3 回答 3

2

如果您真的只想替换反斜杠,那么您需要的只是:

$str = "\\\\\\\"Oracle DBA\\\\\\\"";
$str = str_replace("\\", "", $str);

如果您还希望删除正斜杠:

$str = str_replace(array("\\", "/"), "", $str);

@therefromhere 提出了一个很好的观点:删除所有斜线可能会破坏您的转义。

在这种情况下,消极的前瞻可能会奏效:

$str = preg_replace("/\\\(?!\")/", "", $str);

应该导致 `\"Oracle DBA\"

编辑:做了一个woopsie。x2

于 2012-07-22T02:18:11.493 回答
0

您不需要正则表达式来执行此操作。只需使用这个:

$string = str_replace(array('/', '\\'), '', $string);
于 2012-07-22T02:17:50.527 回答
0

如果您知道需要删除多少级转义,则可以stripslashes多次运行该字符串。

如果您不这样做,那么我不确定您是否可以完全正确地执行此操作-您可以删除所有斜线,但显然您会破坏本应存在的任何斜线。

于 2012-07-22T02:18:42.123 回答