Выполняет поиск в строке subject совпадений с шаблоном
pattern и заменяет их на
replacement. В случае, если параметр
limit указан, будет произведена замена
limit вхождений шаблона; в случае, если
limit опущен либо равняется -1, будут заменены все вхождения шаблона.
Replacement может содержать ссылки вида
\\n либо (начиная с PHP 4.0.4)
$n, причем последний вариант
предпочтительней. Каждая такая ссылка, будет заменена на подстроку, соответствующую
n'нной заключенной в круглые скобки подмаске.
n может принимать значения от 0 до 99, причем ссылка
\\0 (либо $0) соответствует вхождению всего шаблона.
Подмаски нумеруются слева направо, начиная с единицы.
При использовании замены по шаблону с использованием ссылок на подмаски
может возникнуть ситуация, когда непосредственно за маской следует цифра.
В таком случае нотация вида \\n приводит к ошибке: ссылка на первую подмаску, за которой
следует цифра 1, запишется как \\11, что будет интерпретировано как ссылка на одиннадцатую подмаску.
Это недоразумение можно устранить, если воспользоваться конструкцией
\${1}1, указывающей на изолированную ссылку на первую подмаску, и следующую за ней
цифру 1.
Пример 1. Использование подмасок, за которыми следует цифра
Если во время выполнения функции были обнаружены совпадения с шаблоном,
будет возвращено измененное значение subject,
в противном случае будет возвращен исходный текст subject.
Первые три параметра функции preg_replace()
могут быть одномерными массивами. В случае, если массив использует ключи, при обработке массива
они будут взяты в том порядке, в котором они расположены в массиве.
Указание ключей в массиве для pattern и replacement не
является обязательным.
Если вы все же решили использовать индексы, для сопоставления шаблонов и строк, участвующих в замене,
используйте функцию ksort() для каждого из массивов.
Пример 2. Использование массивов с числовыми индексами в качестве аргументов функции preg_replace()
<?php $string = "The quick brown fox jumped over the lazy dog.";
В случае, если параметр subject является массивом,
поиск и замена по шаблону производятся для каждого из его элементов.
Возвращаемый результат также будет массивом.
В случае, если параметры pattern и replacement являются
массивами, preg_replace() поочередно извлекает из обоих массивов
по паре элементов и использует их для операции поиска и замены.
Если массив replacement содержит больше элементов, чем
pattern, вместо недостающих элементов для замены будут взяты пустые строки.
В случае, если pattern является массивом, а replacement - строкой,
по каждому элементу массива pattern будет осущесвтлен поиск
и замена на pattern (шаблоном будут поочередно все элементы массива, в то время как строка замены остается фиксированной).
Вариант, когда pattern является строкой, а replacement - массивом, не имеет смысла.
Модификатор /e меняет поведение функции preg_replace() таким образом,
что параметр replacement после выполнения необходимых подстановок интерпретируется как PHP-код и
только после этого используется для замены. Используя данный модификатор, будьте внимательны:
параметр replacement должен содержать корректный PHP-код,
в противном случае в строке, содержащей вызов функции preg_replace(), возникнет
ошибка синтаксиса.
<?php // $document на выходе должен содержать HTML-документ. // Необходимо удалить все HTML-теги, секции javascript, // пробельные символы. Также необходимо заменить некоторые // HTML-сущности на их эквивалент.