Если искомое значение и значение для замены – массивы, то берется по одному значению из каждого массива и производится их поиск и замена в объекте. Если значений для замены меньше, чем значений для поиска, то в качестве новых значений используется пустая строка.
<?php
$greeting = array('Привет', 'Привет всем!',
'Привет, дорогая!','Здравствуйте',
'Здравствуйте, товарищи', 'Hi');
// объект
$search = array ('Привет',
'Здравствуйте', 'Hi');
// значения, которые будем заменять
$replace = array ('Доброе утро',
'День добрый');
// значения, которыми будем заменять
$new_greet = str_replace($search, $replace,
$greeting);
// делаем замену
print_r($new_greet);
//выводим полученный массив
?>
В результате получим такой массив:
Array (
[0] => Доброе утро
[1] => Доброе утро всем!
[2] => Доброе утро, дорогая!
[3] => День добрый
[4] => День добрый, товарищи
[5] =>
)
Если значения для поиска – массив, а значение для замены – строка, то эта строка будет использована для замены всех найденных значений.
<?php
$greeting = array('Привет', 'Привет всем!',
'Привет, дорогая!', 'Здравствуйте',
'Здравствуйте, товарищи');
// объект
$search = array ('Привет','Здравствуйте');
// значения, которые будем заменять
$replace = 'День добрый';
// значение, которым будем заменять
$new_greet = str_replace($search,
$replace, $greeting); // делаем замену
print_r($new_greet);
//выводим полученный массив
?>
Получим:
Array (
[0] => День добрый
[1] => День добрый всем!
[2] => День добрый, дорогая!
[3] => День добрый
[4] => День добрый, товарищи
)
Функция str_replace() чувствительна к регистру, но существует ее регистронезависимый аналог – функция str_ireplace(). Однако эта функция поддерживается не во всех версиях PHP.
Еще один пример использования функции str_replace() – обработка шаблонов.
Обратимся в очередной раз к описанию какого-либо документа, например статьи. Много раз мы уже создавали форму для ввода подобного описания и даже отображали данные, введенные пользователем в такого рода форму. Но как отображать эти данные, мы описывали непосредственно в коде нашей программы. Теперь мы хотим, чтобы способ отображения данных задавал сам пользователь. Для этого добавим в нашу форму еще один элемент для ввода шаблона.
<h2>Введите описание статьи</h2>
<form action=sbl.php>
<table border=0>
<tr><td>Название </td><td><input
type=text name=title > </td></tr>
<tr><td>Краткое содержание </td><td><input
type=text name=description > </td></tr>
<tr><td>Автор </td><td><input
type=text name=author > </td></tr>
<tr><td>Дата публикации </td><td><input
type=text name=published ></td></tr>
<tr><td>Шаблон документа </td><td><textarea
name=shablon ></textarea></td></tr>
</table>
<input type=submit value='Отправить'>
</form>