Интернет-Университет Информационных Технологий: бесплатное дистанционное образование компьютерным дисциплинам
  Лекции
Язык программирования PHP
1.   Введение в PHP
2.   Основы синтаксиса
3.   Управляющие конструкции
4.   Обработка запросов с помощью PHP
5.   Функции в PHP
6.   Объекты и классы в PHP
7.   Работа с массивами данных
8.   Работа со строками
9.   Работа с файловой системой
10.   Базы данных и СУБД. Введение в S...
11.   Взаимодействие PHP и MySQL
12.   Авторизация доступа с помощью се...
13.   Регулярные выражения
14.   Взаимодействие PHP и XML
15.   Использование шаблонов в PHP
    Экзамен
    Сдать экзамен экстерном
    Литература
    Предметный указатель
    Примеры

Язык программирования PHP
8. Лекция: Работа со строками
Страницы: « | 1 | 2 | 3 | 4 | 5 | 6 | вопросы | » | учебники | для печати и PDA
  Если Вы заметили ошибку - сообщите нам.  

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

Функция 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() (html, txt)

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

<?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 (html, txt)

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

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 (html, txt)

Получим:

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

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

Дальше »
  Если Вы заметили ошибку - сообщите нам.  
Страницы: « | 1 | 2 | 3 | 4 | 5 | 6 | вопросы | » | учебники | для печати и PDA
Курсы | Учебные программы | Учебники | Новости | Форум | Помощь

Телефон: (495) 253-9312, 253-9313, факс: (495) 253-9310, email: info@intuit.ru
© 2003-2006, INTUIT.ru::Интернет-Университет Информационных Технологий - дистанционное образование