Ответ 1
g
подразумевается с preg_replace()
. Вам не нужно включать это.
Я получил ошибку этим регулярным выражением...
$strTmp = preg_replace('~(<\/CharacterStyleRange>(.*?)\n*</CharacterStyleRange>)~gim ' , "</CharacterStyleRange>", $strTmp);
ошибка
Предупреждение: preg_replace(): неизвестный модификатор 'g' в....
Зачем?
g
подразумевается с preg_replace()
. Вам не нужно включать это.
Вам не нужно указывать глобальный флаг. Из документации есть отдельный параметр ($limit
), используемый для указания количества замен:
limit Максимально возможные замены для каждого шаблона в каждой строке темы. По умолчанию -1 (без ограничений).
Таким образом, если вы не укажете положительное число для этого параметра, он заменит все вхождения по умолчанию:
$strTmp = preg_replace('~(<\/CharacterStyleRange>(.*?)\n*</CharacterStyleRange>)~im ' , "</CharacterStyleRange>", $strTmp);
Существует /
перед буквой G в строке вы заменяющая.