如何使用PHP替换多个反斜杠

时间:2016-02-19 23:49:55

标签: php regex backslash

我遇到了一种情况,我最终得到了反转太多的字符串。我的搜索发现其他人说要使用PHP stripslashes(),但是没有完成这项工作,因为它的数量超出了它的数量。那么什么是一个好的工作解决方案?

编辑:

我正在使用代码搜索并在几次迭代中替换.sql文件中的值。 mysql_real_escape_str()每次都在值中添加一个反斜杠,所以我最终在sql文件内容中输入了这样的字符串:

s:10:\\\\\\\\\\\\\\\\"value_here\\\\\\\\\\\\\\\\";

因此,在搜索和替换的所有迭代之后,由于附加的反斜杠,sql文件内容无法使用。

2 个答案:

答案 0 :(得分:0)

对我来说最好的解决方案是:

$str = preg_replace('/\\\\{2,}/', '\\',$strwithtoomanybackslashes);

只用一个替换2个或更多反斜杠。如果上面的反斜杠数看起来令人困惑......那是因为你必须用反斜杠转义每个反斜杠。

上面修复了sql文件内容中的所有字符串,它们有太多的反斜杠。

像这样转换字符串:

s:10:\\\\\\\\\\\\\\\\"value_here\\\\\\\\\\\\\\\\";

要:

s:10:\"value_here\"; 

答案 1 :(得分:0)

preg_replace()适用于此

preg_replace("/\\{2,}/", "\\", $input_lines);

您只需找到所有出现的2个或更多反斜杠,并用一个替换它们。