Выполняет поиск совпадений в строке subject с шаблоном
pattern и заменяет их на
replacement.
Список параметров
pattern
Искомый шаблон. Может быть как строкой, так и массивом строк.
Также доступны некоторые модификаторы PCRE,
включая 'e' (PREG_REPLACE_EVAL), специфичный
только для этой функции.
replacement
Строка или массив строк для замены. Если этот параметр является
строкой, а pattern является массивом,
все шаблоны будут заменены этой строкой. Если и
pattern и replacement
являются массивами, каждый элемент pattern будет
заменен соответствующим элементом из replacement.
Если массив replacement содержит меньше
элементов, чем массив pattern, то все
лишние шаблоны из pattern будут
заменены пустыми строками.
replacement может содержать ссылки вида
\\n, либо
(начиная с PHP 4.0.4) $n,
причем последний вариант предпочтительней. Каждая такая ссылка
будет заменена на подстроку, соответствующую
n-ой подмаске.
n может принимать значения от 0
до 99, причем ссылка \\0 (либо
$0) соответствует вхождению всего шаблона.
Подмаски нумеруются слева направо, начиная с единицы.
Для использования обратного слэша, его необходимо продублировать
(строка PHP "\\\\").
При замене по шаблону с использованием ссылок на подмаски
может возникнуть ситуация, когда непосредственно за маской
следует цифра (например, установка цифры сразу после совпавшей маски).
В таком случае нельзя использовать знакомую нотацию вида
\\1 для ссылки на подмаски.
Запись, например, \\11, смутит
preg_replace(), так как она не сможет понять,
хотите ли вы использовать ссылку \\1, за
которой следует цифра 1 или же вы хотите
просто использовать ссылку \\11, за которой
ничего не следует. Это недоразумение можно устранить, если
воспользоваться конструкцией \${1}1,
использующей изолированную ссылку $1, и
следующую за ней цифру 1.
При использовании модификатора e эта
функция экранирует некоторые символы (а именно
', ",
\ и NULL) в строках, замещающих обратные
ссылки. Это сделано для удостоверения корректности синтаксиса
при использовании обратных ссылок внутри одинарных или двойных
кавычек (например, 'strlen(\'$1\')+strlen("$2")').
Убедитесь, что вы владеете синтаксисом
обработки строк PHP для того, чтобы точно осознавать,
как будет выглядеть интерпретированная строка.
subject
Строка или массив строк для поиска и замены.
Если subject является массивом, то
поиск с заменой осуществляется для каждого элемента
массива subject, а возвращаемое значение
также будет являться массивом.
limit
Максимально возможное количество замен каждого шаблона
для каждой строки subject.
По умолчанию равно -1 (без ограничений).
count
Если указана, то эта переменная будет заполнена количеством
произведенных замен.
Возвращаемые значения
preg_replace() возвращает массив, если
параметр subject является массивом, иначе
возвращается строка.
Если найдены совпадения, возвращается новая версия subject,
иначе subject возвращается нетронутым, в
случае ошибки возвращается NULL.
Список изменений
Версия
Описание
5.1.0
Добавлен параметр count
4.0.4
Добавлена форма '$n' для параметра replacement
4.0.2
Добавлен параметр limit
Примеры
Пример #1 Использование подмасок, за которыми следует цифра
При использовании массивов в pattern и
replacement, ключи обрабатываются в том
порядке, в котором они находятся в массиве. Этот порядок
не всегда совпадает с числовым порядком
индексов. Если вы используете индексы для сопоставления
друг с другом нужного pattern и
replacement, то вам необходимо прогнать
через функцию ksort() оба массива перед
использованием preg_replace().