ereg_replace - Осуществляет замену по регулярному выражению
Вернуться к: Функции регулярных выражений POSIX
ereg_replace
(PHP 4, PHP 5)
ereg_replace — Осуществляет замену по регулярному выражению
Описание
Эта функция сканирует строку string для поиска совпадений с pattern, затем заменяет совпавший текст на replacement.
С версии PHP 5.3.0 эта функция считается УСТАРЕВШЕЙ. Крайне не рекомендуется полагаться на эту возможность.
Список параметров
- pattern
-
Расширенное регулярное выражение POSIX.
- replacement
-
Если pattern содержит подстроки в скобках, replacement может содержать подстроки вида \\digit, которые будут заменены текстом, совпавшим с digit-подстрокой в скобках; \\0 воспроизведет все содержимое строки. Может использоваться до 9 подстрок. Круглые скобки могут быть вложенными, в этом случае они подсчитываются по открывающим скобкам.
- string
-
Исходная cтрока.
Возвращаемые значения
Возвращается измененная строка. Если в строке string совпадений не найдено, она возвратится без изменений.
Примеры
Например, следующий фрагмент кода печатает "This was a test" три раза:
Пример #1 Пример использования ereg_replace()
<?php
$string = "This is a test";
echo str_replace(" is", " was", $string);
echo ereg_replace("( )is", "\\1was", $string);
echo ereg_replace("(( )is)", "\\2was", $string);
?>
Единственное, что следует принять к сведению - если вы используете целочисленное значение как параметр replacement, вы можете не получить ожидаемого результата. Это происходит из-за того, что функция ereg_replace() будет интерпретировать число как порядковое значение символа. Например:
Пример #2 Пример использования ereg_replace()
<?php
/* Это будет работать не так, как ожидалось. */
$num = 4;
$string = "В этой строке четыре слова.";
$string = ereg_replace('четыре', $num, $string);
echo $string; /* Вывод: 'В этой строке слова.' */
/* Это будет работать. */
$num = '4';
$string = "В этой строке четыре слова.";
$string = ereg_replace('четыре', $num, $string);
echo $string; /* Вывод: 'В этой строке 4 слова.' */
?>
Пример #3 Замена URL-адресов на ссылки
<?php
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
"<a href=\"\\0\">\\0</a>", $text);
?>
Примечания
Замечание:
С версии PHP 5.3.0, расширение regex помечено устаревшим и заменено расширением PCRE. Вызов этой функции приведет к ошибке уровня E_DEPRECATED. Смотрите список отличий для помощи при конвертировании в PCRE.
Функция preg_replace(), которая использует Perl-совместимый синтаксис регулярного выражения, часто является более быстрой альтернативой функции ereg_replace().
Смотрите также
- ereg() - Совпадение с регулярным выражением
- eregi() - Совпадение с регулярным выражением без учёта регистра
- eregi_replace() - Осуществляет замену по регулярному выражению без учета регистра
- str_replace() - Заменяет все вхождения строки поиска на строку замены
- preg_replace() - Выполняет поиск и замену по регулярному выражению
Вернуться к: Функции регулярных выражений POSIX