我遇到了一种情况,我最终得到了反转太多的字符串。我的搜索发现其他人说要使用PHP stripslashes(),但是没有完成这项工作,因为它的数量超出了它的数量。那么什么是一个好的工作解决方案?
编辑:
我正在使用代码搜索并在几次迭代中替换.sql文件中的值。 mysql_real_escape_str()每次都在值中添加一个反斜杠,所以我最终在sql文件内容中输入了这样的字符串:
s:10:\\\\\\\\\\\\\\\\"value_here\\\\\\\\\\\\\\\\";
因此,在搜索和替换的所有迭代之后,由于附加的反斜杠,sql文件内容无法使用。
答案 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个或更多反斜杠,并用一个替换它们。