Опубликован: 01.03.2005 | Уровень: для всех | Доступ: свободно
Лекция 8:

Работа со строками

< Лекция 7 || Лекция 8: 123456 || Лекция 9 >

Замена вхождения подстроки

Функция str_replace

Для замены вхождения подстроки можно использовать функцию str_replace() . Это простая и удобная функция, позволяющая решать множество задач, не требующих особых тонкостей при выборе заменяемой подстроки. Для того чтобы производить замены с более сложными условиями, используют механизм регулярных выражений и соответствующие функции ereg_replace() и preg_replace(). Синтаксис функции str_replace() такой:

str_replace(искомое значение, 
    значение для замены, объект)

Функция str_replace() ищет в рассматриваемом объекте значение и заменяет его значением, предназначенным для замены. Почему мы говорим здесь не про строки для поиска и замены и исходную строку, а про значения и объект, в котором происходит замена? Дело в том, что начиная с PHP 4.0.5 любой аргумент этой функции может быть массивом.

Если объект, в котором производится поиск и замена, является массивом, то эти действия выполняются для каждого элемента массива и в результате возвращается новый массив.

<?php
$greeting = array("Привет", "Привет всем!",
   "Привет, дорогая!"); // объект
$new_greet = str_replace("Привет", 
   "Доброе утро", $greeting); 
   // делаем замену
print_r($new_greet);
/* получим: Array ([0]=>Доброе утро 
   [1]=>Доброе утро всем!
   [2]=>Доброе утро, дорогая!) */
?>
Пример 8.7. Использование функции str_replace()

Если искомое значение и значение для замены – массивы, то берется по одному значению из каждого массива и производится их поиск и замена в объекте. Если значений для замены меньше, чем значений для поиска, то в качестве новых значений используется пустая строка.

<?php
$greeting = array("Привет", "Привет всем!",
   "Привет, дорогая!","Здравствуйте", 
   "Здравствуйте, товарищи", "Hi"); 
   // объект
$search = array ("Привет",
   "Здравствуйте", "Hi"); 
   // значения, которые будем заменять
$replace = array ("Доброе утро",
   "День добрый"); 
   // значения, которыми будем заменять
$new_greet = str_replace($search, $replace,
                         $greeting);
   // делаем замену
print_r($new_greet); 
   //выводим полученный массив
?>
Пример 8.8. Использование функции str_replace(). Вариант 2

В результате получим такой массив:

Array (
[0] => Доброе утро
[1] => Доброе утро всем!
[2] => Доброе утро, дорогая!
[3] => День добрый
[4] => День добрый, товарищи
[5] =>
)

Если значения для поиска – массив, а значение для заменыстрока, то эта строка будет использована для замены всех найденных значений.

<?php
$greeting = array("Привет", "Привет всем!",
   "Привет, дорогая!", "Здравствуйте",
   "Здравствуйте, товарищи"); 
   // объект
$search = array ("Привет","Здравствуйте"); 
   // значения, которые будем заменять
$replace = "День добрый"; 
   // значение, которым будем заменять
$new_greet = str_replace($search, 
   $replace, $greeting);  // делаем замену
print_r($new_greet); 
   //выводим полученный массив
?>
Пример 8.9. Использование функции str_replace(). Вариант 3

Получим:

Array (
[0] => День добрый
[1] => День добрый всем!
[2] => День добрый, дорогая!
[3] => День добрый
[4] => День добрый, товарищи
)

Функция str_replace() чувствительна к регистру, но существует ее регистронезависимый аналог – функция str_ireplace() . Однако эта функция поддерживается не во всех версиях PHP.

< Лекция 7 || Лекция 8: 123456 || Лекция 9 >
Федор Антонов
Федор Антонов

Здравствуйте!

Записался на ваш курс, но не понимаю как произвести оплату.

Надо ли писать заявление и, если да, то куда отправлять?

как я получу диплом о профессиональной переподготовке?

Сергей Крупко
Сергей Крупко

Добрый день.

Я сейчас прохожу курс  повышения квалификации  - "Профессиональное веб-программирование". Мне нужно получить диплом по этому курсу. Я так полагаю нужно его оплатить чтобы получить диплом о повышении квалификации. Как мне оплатить этот курс?