$text = "abc def ghi abc def ghi abc def ghi abc"
$search = "abc";
$regex = '/(\s)'.$search.'(\s)/i';
$array_key = array();
if(preg_match_all($regex, $text, $tmp)) {
$array_key = $tmp[0];
$n = count($tmp[0]);
for($i=0; $i<$n; $i++) {
if($n % 2 == 0) {
$content = str_replace($array_key[$i], 'ABC', $text);
}
}
Когда я эхо $ содержание выводится:Как заменить позицию строки в php?
"ABC def ghi ABC def ghi ABC def ghi ABC
"
Но я хочу результат "ABC def ghi abc def ghi ABC def ghi abc
", потому что $n % 2 == 0
, Как это исправить?
'$ n' не меняется в цикле, поэтому он либо всегда четный, либо всегда нечетный. – Arjan
Используйте 'preg_match' вместо' preg_match_all' ... в настоящее время он возвращает все найденные совпадения. 'preg_match' вернет только первое совпадение. –