Курс "Язык программирования PHP"
Шрифт:
Функция substr_replace
Эта функция сочетает в себе свойства двух уже рассмотренных нами функций – функции str_replace
Эта функция заменяет часть строки строкой, предназначенной для замены. Заменяется та часть строки (т.е. подстрока), которая начинается с позиции, указанной параметром позиция начального символа. С помощью дополнительного аргумента длина можно ограничить число заменяемых символов. То есть, фактически, мы не указываем конкретно строку, которую нужно заменить, мы только описываем, где она находится и, возможно, какую длину имеет. В этом отличие функции substr_replace от str_replace.
Как и в случае с функцией substr аргументы позиция начального символа и длина могут быть отрицательными. Если позиция начального символа отрицательна, то замена производится, начиная с этой позиции относительно конца строки. Отрицательная длина задает, сколько символов от конца строки не должно быть заменено. Если длина не указывается, то замена происходит до конца строки.
В результате работы этого скрипта получим:
Разделение и соединение строки
Очень полезные функции – функция разделения строки на части и обратная ей функция объединения строк в одну строку. Почему очень полезные? Например, если вы динамически генерируете форму по желанию пользователя, можно предложить ему вводить элементы для создания списка выбора, разделяя их каким-нибудь символом. И для того чтобы обработать полученный список значений, как раз и пригодится умение разбивать строку на кусочки. Для реализации такого разбиения в PHP можно использовать несколько функций:
Последние две функции работают с регулярными выражениями, поэтому в данной лекции мы их рассматривать не будем. Рассмотрим более простую функцию – explode.
Функция explode делит исходную строку на подстроки, каждая из которых отделена от соседней с помощью указанного разделителя, и возвращает массив полученных строк. Если задан дополнительный параметр максимальное число элементов, то число элементов в массиве будет не больше этого параметра, в последний элемент записывается весь остаток строки. Если в качестве разделителя указана пустая строка «""», то функция explode вернет false. Если символа разделителя в исходной строке нет, то возвращается исходная строка без изменений.
Пример 8.11. мы хотим создать элемент формы – выпадающий список и значения для этого списка должен ввести пользователь, не знакомый с языком html. Создадим такую форму:
Скрипт, который будет ее обрабатывать (exp.php), может быть таким:
Моров. Том 1 и Том 2
1. Моров
Фантастика:
попаданцы
альтернативная история
аниме
рейтинг книги
Избранное
рейтинг книги
Барону наплевать на правила
7. Закон сильного
Фантастика:
боевая фантастика
попаданцы
аниме
рейтинг книги
Первый среди равных. Книга XIII
13. Первый среди Равных
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
рейтинг книги
Скандальные разводы
Научно-образовательная:
история
рейтинг книги
Жрец Хаоса. Книга III
3. Зов пустоты
Фантастика:
аниме
фэнтези
попаданцы
рейтинг книги
Масоны
Проза:
русская классическая проза
рейтинг книги
Чужак
1. Ушедший Род
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Координаты чудес (сборник)
Шедевры фантастики
Фантастика:
научная фантастика
рейтинг книги
На границе империй. Том 8
12. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
рейтинг книги
Верность
Приключения:
исторические приключения
морские приключения
рейтинг книги
Рассвет русского царства 3
3. Новая Русь
Фантастика:
историческое фэнтези
альтернативная история
рейтинг книги
(сборник)
рейтинг книги
Время, Люди, Власть (Книга 1)
Проза:
русская классическая проза
рейтинг книги