我有一个必须从字符串中替换的单词数组,我们称其为$my_replacements
。我还有一个字符串,我们称它为$my_string
,其中可以包含其中的某些值。
现在我有这个:
foreach ($my_replacements as $replacement) {
$replaced_value = preg_replace("/(^|[\n\r\f\t \.\,])" . $replacement . "([\n\r\f\t \.\,]|$)/iu", '', $my_string);
if($replaced_value !== $my_string) {
break;
}
}
如果第一次替换我想退出foreach,那就很好了。但是,如果字符串包含一个或多个要替换的值,则它将不起作用。如何使用preg_replace查找这些单词,然后全部替换?重要的是,我必须知道是否已完成任何替换。
最佳答案
您可以将索引数组与preg_replace()
一起使用。
<?php
$string = 'The quick brown fox jumped over the lazy dog.';
$patterns = array();
$patterns[0] = '/quick/';
$patterns[1] = '/brown/';
$patterns[2] = '/fox/';
$replacements = array();
$replacements[0] = 'slow';
$replacements[1] = 'black';
$replacements[2] = 'bear';
echo preg_replace($patterns, $replacements, $string);
?>
上面的示例将输出:
The slow black bear jumped over the lazy dog.