Дипломные работы, курсовые проекты на заказ, контрольные работы на заказ

 
Начертательная геометрия Практикум по решению задач Геометрическое черчение Инженерная графика ЕСКД Кратные интегралы Математический анализ Матрицы Пределы Производные Векторная алгебра Интегральное исчисление ТФКП Ядерная физика Электростатика Магнетизм Оптика Информационные технологии
Учебник РНР
НазадВперёд

preg_replace

(PHP 3>= 3.0.9, PHP 4)

preg_replace - выполняет поиск и замену регулярного выражения.

Описание

mixed preg_replace (mixed pattern, mixed replacement, mixed subject [, int limit])

Ищет в subject совпадения с pattern и замещает их replacement. Если limit специфицирован, то замещаются только limit совпадений; если limit опущен или равен -1, замещаются все совпадения.

Replacement может содержать ссылку в форме \\n или (начиная с PHP 4.0.4) $n, где последняя форма предпочтительнее. Каждая такая ссылка замещается текстом, захваченным n'ным патэрном в скобках. n может быть от 0 до 99, а \\0 или $0 ссылаются на текст, совпавший со всем патэрном. Открывающие скобки подсчитываются слева направо (начиная с 1) для получения количества захватывающих субпатэрнов.

Если совпадения найдены, возвращается новый subject, иначе subject возвращается без изменений.

Каждый параметр preg_replace() может быть массивом.

Если subject это массив, то поиск и замена выполняются в каждом вхождении subject, return-значение также будет массивом.

Если pattern и replacement являются массивами, то preg_replace() принимает значение из каждого массива и использует их для выполнения поиска и замены в subject. Если replacement имеет меньше значений, чем pattern, то для оставшихся значений для замены используется пустая строка. Если pattern это массив, а replacement это строка, то эта замещающая строка используется для каждого значения pattern. Обратное не будет иметь смысла.

Модификатор /e делает так, что preg_replace() рассматривает параметр replacement как PHP-код после выполнения соответствующей замены ссылок.
Подсказка: убедитесь, что replacement образует строку правильного PHP-кода, иначе PHP сообщит об ошибке разбора в строчке с preg_replace().

Пример 1. Замена различных значений
$patterns 
= array ("/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/", "/^\s*{(\w+)}\s*=/"); $replace 
= array ("\\3/\\4/\\1\\2", "$\\1 ="); print preg_replace ($patterns, $replace, 
"{startDate} = 1999-5-27");

Этот пример даст:

$startDate 
= 5/27/1999
Пример 2. Использование модификатора /e
preg_replace ("/(<\/?)(\w+)([^>]*>)/e", "'\\1'.strtoupper('\\2').'\\3'", 
$html_body);

Это переведёт в верхний регистр все тэги HTML в тексте ввода.

Пример 3. Конвертация HTML в текст
// $document должен содержать HTML-документ. // Здесь будут удалены тэги 
HTML, разделы javascript // и пустое пространство. Также некоторые обычные элементы 
// HTML конвертируются в их текстовые эквиваленты. $search = array ("'<script[^>]*?>.*?</script>'si", 
// Вырезается javascript "'<[\/\!]*?[^<>]*?>'si", // Вырезаются 
html-тэги "'([\r\n])[\s]+'", // Вырезается пустое пространство "'&(quot|#34);'i", 
// Замещаются html-элементы "'&(amp|#38);'i", "'&(lt|#60);'i", "'&(gt|#62);'i", 
"'&(nbsp|#160);'i", "'&(iexcl|#161);'i", "'&(cent|#162);'i", "'&(pound|#163);'i", 
"'&(copy|#169);'i", "'&#(\d+);'e"); // вычисляется как php $replace = 
array ("", "", "\\1", "\"", "&", "<", ">", " ", chr(161), chr(162), 
chr(163), chr(169), "chr(\\1)"); $text = preg_replace ($search, $replace, $document);

Примечание: параметр limit был введён после PHP 4.0.1pl2.

См. также preg_match(), preg_match_all() и preg_split().


НазадОглавление Вперёд
preg_replace_callbackВверхpreg_split