it-roy-ru.com

Предупреждение: preg_replace (): неизвестный модификатор 'g'

Я получил ошибку этим регулярным выражением ..

$strTmp = preg_replace('~(<\/CharacterStyleRange>(.*?)\n*</CharacterStyleRange>)~gim ' , "</CharacterStyleRange>", $strTmp);

ошибка

Предупреждение: preg_replace (): неизвестный модификатор 'g' в ....

зачем?

54
Foo Ling

g подразумевается с preg_replace(), вам не нужно его включать.

129
rid

Вам не нужно указывать глобальный флаг. Из документации есть отдельный параметр ($limit), используемый для указания количества замен:

limit
Максимально возможные замены для каждого шаблона в каждой строке темы. По умолчанию -1 (без ограничений).

Таким образом, если вы не укажете положительное число для этого параметра, он заменит все вхождения по умолчанию:

$strTmp = preg_replace('~(<\/CharacterStyleRange>(.*?)\n*</CharacterStyleRange>)~im ' , "</CharacterStyleRange>", $strTmp);
35
p.s.w.g

перед строкой G стоит буква G

0
Cparello