匹配数组中的值并替换为替代值

时间:2013-01-17 12:22:55

标签: php replace

如何替换字符串中的值,该值与数组中具有相同值但前面带有\的条目相匹配?

$test = "Mike (D)";
$array('(',')','@','-');

As()在数组$ test中应该等于"Mike \(D\)";

所以基本上用项目相同的项目替换项目前缀为\

3 个答案:

答案 0 :(得分:5)

addcslashes($test, "()@-");

请参阅:http://php.net/manual/en/function.addcslashes.php

答案 1 :(得分:2)

$test      = "Mike (D)";
$find      = array('(',')','@','-');
$repalce   = array('\(','\)','\@','\-');

$newphrase = str_replace($find, $repalce, $test);

答案 2 :(得分:0)

您可以尝试这样的事情:

foreach ($array as $needle) { 
    if(strpos($needle, $test) {
       str_replace($needle, '\\'.$needle, $test);
    }
 }

或者,如果您使用替换字符串创建数组,只需使用:

$array = array('(', ')', '@',...);
$replace = array('\(', '\)', '\@',...);
str_replace($array, $replace, $test);