(PHP 4, PHP 5)
ereg_replace — Осуществляет замену по регулярному выражению
Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.
Есть следующие альтернативы:
$pattern
, string $replacement
, string $string
) : string
Эта функция сканирует строку string
для поиска совпадений с
pattern
, затем заменяет совпавший текст на
replacement
.
pattern
Расширенное регулярное выражение POSIX.
replacement
Если pattern
содержит подстроки в скобках,
replacement
может содержать подстроки вида
\digit, которые будут заменены текстом,
совпавшим с digit-подстрокой в скобках; \0 воспроизведет все
содержимое строки. Может использоваться до 9 подстрок. Круглые скобки могут быть
вложенными, в этом случае они подсчитываются по открывающим скобкам.
string
Исходная строка.
Возвращается измененная строка. Если в строке
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);
?>