Попередження: preg_replace (): Невідомий модифікатор 'g'


80

Я отримав помилку через цей регулярний вираз ...

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

Помилка

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

Чому?

Відповіді:



45

Не потрібно вказувати глобальний прапор. З документації є окремий параметр ( $limit), який використовується для вказівки кількості замін, які слід зробити:

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

Отже, якщо ви не вказали позитивне число для цього параметра, він за замовчуванням замінить усі випадки:

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

-2

У /рядку, який ви замінюєте, перед буквою G стоїть буква G.


це просто викинуло для мене цю помилку "Glasshouse Images / Getty Images" Я думаю, preg_ сприймає це як втечу
Кпарелло
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.