如何替换字符串中的值,该字符串中的值与数组中的值相同,但前面是\?匹配数组中的值并用替代替换
$test = "Mike (D)";
$array('(',')','@','-');
作为()是在所述阵列$测试应该等于"Mike \(D\)";
所以基本上替换关于项目相同的项目与前缀的项目\
如何替换字符串中的值,该字符串中的值与数组中的值相同,但前面是\?匹配数组中的值并用替代替换
$test = "Mike (D)";
$array('(',')','@','-');
作为()是在所述阵列$测试应该等于"Mike \(D\)";
所以基本上替换关于项目相同的项目与前缀的项目\
$test = "Mike (D)";
$find = array('(',')','@','-');
$repalce = array('\(','\)','\@','\-');
$newphrase = str_replace($find, $repalce, $test);
addcslashes($test, "()@-");
你可以试试这样的:
foreach ($array as $needle) {
if(strpos($needle, $test) {
str_replace($needle, '\\'.$needle, $test);
}
}
或者,如果你创建一个替换字符串数组,只需使用:
$array = array('(', ')', '@',...);
$replace = array('\(', '\)', '\@',...);
str_replace($array, $replace, $test);
为什么这给我'迈克\\(d \\)'? –
我得到'Mike \(D \)' –
似乎取决于'php'或'server'配置我认为会自动添加反斜杠。 –