1

该函数str_replace()接受一个数组作为其第一个参数,但我看不到任何方法来存储字符串以用于替换找到的文本的第二个参数。例如,如果我想用括号或引号围绕字符串格式化。

这是一个例子。假设我想在 $array 中的单词被吐出时在它们周围插入引号,或者将单词的大小写从全部小写更改为 $array 中设置的大小写:

$array = array('Over','Dog','Quick');

$string = "The quick brown fox jumps over the lazy dog";

$string = explode(" ",$string);

foreach ($string as $word) {

    echo str_replace($array, "???", $word);

    echo " ";

}

那将返回The ??? brown fox jumps ??? the lazy ???。我意识到这可能是正则表达式的工作,但我无法弄清楚如何让它处理格式化和替换。我觉得我在这里遗漏了一些东西,但我在谷歌上什至没有触及这个主题。

4

1 回答 1

2
$array = array('Over', 'Dog', 'Quick');

$string = "The quick brown fox jumps over the lazy dog";

echo str_ireplace($array, $array, $string);

在此处查看实际操作:http: //viper-7.com/q7n7uw


因此,例如,如果您想在字符串周围加上引号,请使用以下命令:

$array = array('Over', 'Dog', 'Quick');
$replacements = array();
foreach($array as $item) $replacements[] = '"' . $item . '"';

$string = "The quick brown fox jumps over the lazy dog";

echo str_ireplace($array, $replacements, $string);

见这里:http: //viper-7.com/2afgL5


但实际上,这是一份工作preg_replace

$search = array('Over','Dog','Quick');

foreach($search as &$item) $item = '~\b(' . $item . ')\b~i';

$string = "The quick brown fox jumps over the lazy dog";

echo preg_replace($search, '"$1"', $string);

见这里:http: //viper-7.com/nAlqzX

于 2012-09-02T16:34:25.473 回答