Функции Язык программирования PHP

ereg_replace

(PHP 3, PHP 4)

ereg_replace - замещает регулярное выражение.

Описание

string ereg_replace (string pattern, string replacement, string string)

Примечание: preg_replace(), которая использует Perl-совместимый синтаксис регулярного выражения, часто работает быстрее, чем ereg_replace().

Эта функция сканирует string для поиска совпадений с pattern, затем заменяет совпавший текст строкой replacement.

Возвращается модифицированная строка. (Что может означать, что строка-оригинал будет возвращена, если нет заменённых совпадений.)

Если pattern содержит подстроку в скобках, replacement может содержать подстроки вида \\digit, которые будут заменены текстом, совпавшим с digit'ной подстрокой в скобках; \\0 воспроизведёт всё содержимое строки. Может использоваться до 9 подстрок. Скобки могут вкладываться, и тогда они подсчитываются по открывающим скобкам.

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

Например, следующий фрагмент кода печатает "This was a test" три раза:
Пример 1. ereg_replace()
$string 
= "This is a test"; echo ereg_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 = "This string 
has four words."; $string = ereg_replace('four', $num, $string); echo $string; 
/* Output: 'This string has words.' */ /* Это будет работать. */ $num = '4'; $string 
= "This string has four words."; $string = ereg_replace('four', $num, $string); 
echo $string; /* Output: 'This string has 4 words.' */ ?>
Пример 3. Замена URLs ссылками
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", 
"<a href=\"\\0\">\\0</a>", $text);

См. также ereg(), eregi(), eregi_replace(), str_replace() и preg_match().


Назад Оглавление Вперёд
Функции регулярных выражений (POSIX Extended) Вверх ereg

Глава 24. Использование PHP из командной строки

Эта опция позволяет выполнять PHP прямо в командной строке. Начальный и конечный тэги PHP (<?php и ?>) не нужны и вызывают ошибки разборщика.

Примечание: нужно проявлять внимание при использовании этой формы PHP, чтобы не было противоречий с заменой переменных командной строки, выполняемой оболочкой.

Пример, выводящий ошибку разборщика:

$ php -r "$foo = get_defined_constants();" Command line code(1) : Parse error 
- parse error, unexpected '='

Проблема здесь в том, что sh/bash выполняет замену переменной даже при использовании двойных кавычек ". Поскольку переменная $foo вряд ли определена, она ни во что не разворачивается, что в результате даёт код, передаваемый в PHP для выполнения, фактически прочитанный:

$ 
php -r " = get_defined_constants();"