mb_ereg_replace
похоже, не поддерживает g
модификатор. Есть ли способ найти и заменить все вхождения с поддержкой многобайтовых?
Разве это не то, что он делает по умолчанию?
$original = html_entity_decode(
'Бинокли', ENT_COMPAT, 'UTF-8'
);
mb_regex_encoding('UTF-8');
$replaced = mb_ereg_replace('и', '!', $original);
echo "Original: $original", PHP_EOL;
echo "Replaced: $replaced", PHP_EOL;
Вывод:
Original: Бинокли
Replaced: Б!нокл!