Язык программирования PHP | страница 77



>echo substr_replace($text, 'Иван', 11,

> -1) . "
\n";

>echo substr_replace($text, 'Иван', -5,

> -1) . "
\n";

>?>



В результате работы этого скрипта получим:


>Исходная строка: Меня зовут Вася.

>------------------------------------------

>А меня – Петя

>А меня – Петя

>Привет! Меня зовут Вася.

>Меня зовут Иван.

>Меня зовут Иван.



Разделение и соединение строки


Очень полезные функции – функция разделения строки на части и обратная ей функция объединения строк в одну строку. Почему очень полезные? Например, если вы динамически генерируете форму по желанию пользователя, можно предложить ему вводить элементы для создания списка выбора, разделяя их каким-нибудь символом. И для того чтобы обработать полученный список значений, как раз и пригодится умение разбивать строку на кусочки. Для реализации такого разбиения в PHP можно использовать несколько функций:


>explode(разделитель,исходная строка

> [,максимальное число элементов])

>split (шаблон, исходная строка

> [, максимальное число элементов])

>preg_split (шаблон, исходная строка

> [, максимальное число элементов

> [,флаги]])


Последние две функции работают с регулярными выражениями, поэтому в данной лекции мы их рассматривать не будем. Рассмотрим более простую функцию – explode().


Функция explode() делит исходную строку на подстроки, каждая из которых отделена от соседней с помощью указанного разделителя, и возвращает массив полученных строк. Если задан дополнительный параметр максимальное число элементов, то число элементов в массиве будет не больше этого параметра, в последний элемент записывается весь остаток строки. Если в качестве разделителя указана пустая строка «""», то функция explode() вернет false. Если символа разделителя в исходной строке нет, то возвращается исходная строка без изменений.


Пример 8.11. мы хотим создать элемент формы – выпадающий список и значения для этого списка должен ввести пользователь, не знакомый с языком html. Создадим такую форму:


>

> Введите варианты для выбора автора статьи

> через двоеточие (":"):

>

>

>

>



Скрипт, который будет ее обрабатывать (exp.php), может быть таким:


>

>$str = $_GET["author"];

>$names = explode(":",$str);

> // разбиваем строку введенную,

> // пользователем с помощью ":"

>$s = "