Разделение и соединение строкиОчень полезные функции – функция разделения строки на части и обратная ей функция объединения строк в одну строку. Почему очень полезные? Например, если вы динамически генерируете форму по желанию пользователя, можно предложить ему вводить элементы для создания списка выбора, разделяя их каким-нибудь символом. И для того чтобы обработать полученный список значений, как раз и пригодится умение разбивать строку на кусочки. Для реализации такого разбиения в PHP можно использовать несколько функций:
explode(разделитель,исходная строка
[,максимальное число элементов])
split (шаблон, исходная строка
[, максимальное число элементов])
preg_split (шаблон, исходная строка
[, максимальное число элементов
[,флаги]])
Последние две функции работают с регулярными выражениями, поэтому в данной лекции мы их рассматривать не будем. Рассмотрим более простую функцию – explode(). Функция explode() делит исходную строку на подстроки, каждая из которых отделена от соседней с помощью указанного разделителя, и возвращает массив полученных строк. Если задан дополнительный параметр максимальное число элементов, то число элементов в массиве будет не больше этого параметра, в последний элемент записывается весь остаток строки. Если в качестве разделителя указана пустая строка «""», то функция explode() вернет false. Если символа разделителя в исходной строке нет, то возвращается исходная строка без изменений. Пример 8.11. мы хотим создать элемент формы – выпадающий список и значения для этого списка должен ввести пользователь, не знакомый с языком html. Создадим такую форму:
<form action=exp.php>
Введите варианты для выбора автора статьи
через двоеточие (":"):<br>
<input type=text name=author size=40>
<br>
<input type=submit value=Создать элемент>
</form>
Пример
8.11.
Использование функции explode()
(html,
txt)
Скрипт, который будет ее обрабатывать (exp.php), может быть таким:
<?php
$str = $_GET["author"];
$names = explode(":",$str);
// разбиваем строку введенную,
// пользователем с помощью ":"
$s = "<select name=author>";
// создаем выпадающий список
foreach ($names as $k => $name) {
$s .= "<option value=$k>$name";
// добавляем элементы к списку
}
$s .= "</select>";
echo $s;
?>
В итоге, если мы введем такую строчку в форму:  Рис. 8.2.
Ввод значений для создания выпадающего списка
то получим следующий выпадающий список:  Рис. 8.3.
Выпадающий список, полученный в результате обработки формы
Кроме разделения строки на части иногда, наоборот, возникает необходимость объединения нескольких строк в одно целое. Функция, предлагаемая для этого языком PHP, называется implode(): implode (массив строк, объединяющий элемент) Эта функция объединяет элементы массива с помощью переданного ей объединяющего элемента (например, запятой). В отличие от функции explode(), порядок аргументов в функции implode() не имеет значения. Пример 8.12. Допустим, мы храним имя, фамилию и отчество человека по отдельности, а выводить их на странице нужно вместе. Чтобы соединить их в одну строку, можно использовать функцию implode():
<?php
$data = array("Иванов","Иван","Иванович");
$str = implode($data," ");
echo $str;
?>
Пример
8.12.
Использование функции implode()
(html,
txt)
В результате работы этого скрипта получим строку: Иванов Иван Иванович У функции implode() существует псевдоним – функция join(), т.е. эти две функции отличаются лишь именами.
|