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

str_replace

(PHP 3>= 3.0.6, PHP 4)

str_replace - замещает все вхождения строки поиска строкой замещения.

Описание

mixed str_replace (mixed search, mixed replace, mixed subject)

Эта функция возвращает строку или массив со всеми вхождениями search в subject, заменёнными данным значением replace. Если вам не нужны какие-то особые правила замещения, вы всегда должны использовать эту функцию вместо ereg_replace() или preg_replace().

В PHP 4.0.5 и новее каждый параметр для str_replace() может быть массивом.

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

Если search и replace это массивы, то str_replace() принимает значение из каждого массива и использует его для поиска и замены в subject. Если replace имеет меньше значений, чем search, то пустая строка используется для остальных замещающих значений. Если search это массив, а replace - строка, то эта строка замещения используется для каждого значения search.

Пример 1. str_replace()
$bodytag 
= str_replace("%body%", "black", "<body text=%body%>");

Эта функция бинарно безопасна/binary safe.

Примечание: str_replace() была введена в PHP 3.0.6, но была с багами до PHP 3.0.8.

См. также ereg_replace(), preg_replace() и strtr().


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

Условные субпатэрны

Первая часть совпадает с необязательной открывающей скобкой, и, если символ имеется, устанавливает его как первую совпавшую подстроку.
Вторая часть совпадает с одним или более символов, которые не являются скобками.
Третья часть это условный субпатэрн, который проверяет, совпадает ли первый набор скобок или нет. Если совпал, то есть если субъект начинается с открывающей скобки, условие будет TRUE, будет выполняться yes-pattern и необходима закрывающая скобка. Иначе, поскольку no-pattern отсутствует, субпатэрн не совпадёт ни с чем. Другими словами, этот патэрн совпадает с последовательностью не-скобок, возможно, заключённой в скобки.

Если условие не является последовательностью цифр, оно обязано быть утверждением. Это может быть положительное или отрицательное lookahead или lookbehind утверждение.
Рассмотри патэрн, снова содержащий незначащий пробел и две альтернативы во второй строчке:

(?(?=[^a-z]*[a-z])
\d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} )

Условие это положительное опережающее/lookahead утверждение, которое совпадает с необязательной последовательностью не-букв с последующей буквой. Другими словами, оно проверяет наличие минимум одной буквы в субъекте. Если буква найдена, вновь проверяется совпадение субъекта с первой альтернативой; иначе проверяется совпадение со второй альтернативой. Этот патэрн совпадает со строками одной из двух форм: dd-aaa-dd или dd-dd-dd, где aaa это буквы, а dd это цифры.