В этом уроке мы научимся двум супер-полезным функциям: explode() и implode(). Они как два брата-акробата в мире PHP: один мастерски разбирает строки на кусочки (массив), а другой собирает эти кусочки обратно в единое целое (строку).
Представьте, что у вас есть список покупок в одной строке "молоко,хлеб,яйца". С помощью explode() вы можете мгновенно превратить это в аккуратный массив. А если у вас есть массив с тегами для статьи, implode() поможет склеить их в красивую строку для вывода на сайт.
Эти функции постоянно используются при работе с данными из файлов, баз данных или веб-форм, когда нужно оперировать данными, представленными в виде строки с разделителем. Пройдя этот тренажер, вы научитесь легко манипулировать строковыми данными.
- Модуль 1: Основы синтаксиса PHP
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Модуль 4: Условные конструкции
- Модуль 5: Циклы
- Модуль 6: Массивы
- Индексированные массивы.
- Ассоциативные массивы.
- Многомерные массивы.
- Добавление элементов в массив.
- Удаление элементов из массива.
- Функция count().
- Функция array_push() и array_pop().
- Функция array_shift() и array_unshift().
- Функция array_merge().
- Функция array_slice().
- Функция array_splice().
- Функция in_array().
- Функция array_search().
- Функция array_keys() и array_values().
- Функция array_unique().
- Функция array_reverse().
- Сортировка: sort(), rsort().
- Сортировка: asort(), arsort().
- Сортировка: ksort(), krsort().
- Функция array_map().
- Функция array_filter().
- Функция array_reduce().
- Функция array_walk().
- Функция array_column().
- Деструктуризация массивов.
- Модуль 7: Функции
- Объявление функций.
- Вызов функций.
- Параметры функций.
- Возврат значений return.
- Значения параметров по умолчанию.
- Передача по значению.
- Передача по ссылке.
- Переменное количество аргументов.
- Оператор распаковки ....
- Типизация параметров.
- Типизация возвращаемых значений.
- Nullable типы.
- Union типы (PHP 8).
- Именованные аргументы (PHP 8).
- Анонимные функции.
- Стрелочные функции.
- Замыкания и use.
- Рекурсивные функции.
- Глобальные переменные в функциях.
- Статические переменные в функциях.
- Модуль 8: Работа со строками
- Одинарные и двойные кавычки.
- Экранирование символов.
- Heredoc и Nowdoc синтаксис.
- Функция strlen().
- Функция substr().
- Функция str_replace().
- Функция strpos() и strrpos().
- Функция explode() и implode().
- Функция trim(), ltrim(), rtrim().
- Функция strtolower() и strtoupper().
- Функция ucfirst() и ucwords().
- Функция str_repeat().
- Модуль 9: Суперглобальные переменные
- Модуль 10: Работа с формами
- Модуль 11: Работа с файлами
- Модуль 12: Дата и время
- Модуль 13: Регулярные выражения
- Модуль 14: Сессии и Cookie
- Модуль 15: Include и Require
- Модуль 16: Объектно-ориентированное программирование
- Модуль 17: Пространства имен
- Модуль 18: Обработка ошибок и исключений
- Модуль 19: Работа с JSON и XML
- Модуль 20: Работа с базами данных MySQLi
- Модуль 21: PDO - PHP Data Objects
- Модуль 22: Composer и зависимости
- Модуль 23: cURL и HTTP запросы
- Модуль 24: REST API
- Модуль 25: Безопасность
- Модуль 26: Генераторы и итераторы
- Модуль 27: Reflection API
- Модуль 28: Работа с изображениями
- Модуль 29: Отправка email
- Модуль 30: Паттерны проектирования
- Модуль 31: Тестирование
- Модуль 32: Продвинутые возможности PHP 8+
Разбиваем строку на массив
У вас есть строка с перечислением фруктов через запятую. Используйте правильную функцию и укажите верный разделитель, чтобы превратить эту строку в массив.
<?php
$items_str = "яблоко,банан,апельсин";
// Преобразуем строку в массив
$items_arr = input1S(input2S, $items_str);
print_r($items_arr);Собираем массив в строку
Теперь обратная задача. У вас есть массив тегов. Соберите их в одну строку, где теги будут разделены запятой и пробелом.
<?php
$tags = ['php', 'web', 'developer'];
// Объединяем массив в строку
$tag_string = input1S(input2S, $tags);
echo $tag_string;Какой будет результат?
Проанализируйте код. Дан массив слов, который объединяется в строку с помощью функции implode. Что именно выведет этот скрипт? Впишите точный результат в поле ответа.
<?php
$words = ["PHP", "это", "просто"];
echo implode(" ", $words);
?>Что будет в массиве?
В коде строка, содержащая данные пользователя, разделенные точкой с запятой. Её обрабатывают функцией explode(). Выберите вариант, который точно отображает содержимое переменной $user_data после выполнения кода.
<?php
$csv = "1;John Doe;john.doe@example.com";
$user_data = explode(";", $csv);
print_r($user_data);
?>Исправьте ошибку с разделителем
Код пытается получить части даты из строки, но использует неправильный разделитель. В результате скрипт работает некорректно и выдает ошибку. Найдите строку с explode() и исправьте разделитель, чтобы код вывел год.
<?php$date_str = "25-12-2024";$date_parts = explode("/", $date_str); // Цель: получить массив ['25', '12', '2024']echo "Год: " . $date_parts[0];?>Соберите вызов функции из банка
Вам дан массив CSS-классов. Используя элементы из "банка", соберите правильный вызов функции, который объединит эти классы в одну строку, пригодную для HTML-атрибута class. Классы должны быть разделены пробелом.
<?php
$classes = ['btn', 'btn-primary', 'active'];
// Собираем строку для атрибута class
$class_string = input1S(input2S, input3S);
echo $class_string;
?>Соберите цепочку преобразований
Соберите из фрагментов рабочий скрипт. Он должен взять строку тегов, разделенных запятыми, преобразовать ее в массив, добавить в начало массива новый тег 'php', а затем соединить все элементы обратно в строку, но уже с разделителем '#'.
$new_tags_str = implode('#', $tags_arr);echo $new_tags_str;$tags_arr = explode(',', $tags_str);implode(',', $tags_arr);array_unshift($tags_arr, 'php');$tags_str = "web,dev,html";$tags_arr = explode('#', $tags_str);Сопоставьте функцию и ее назначение
Сопоставьте название функции в правом столбце с ее описанием в левом. Перетащите элементы правой колонки, чтобы они соответствовали описаниям слева.
join()str_split()implode()explode()Explode с ограничением
Функция explode() вызвана с третьим аргументом — лимитом. Этот параметр ограничивает количество элементов в результирующем массиве. Проанализируйте код и выберите вариант, который правильно показывает результат.
<?php
$data = "user:pass:uid:gid:gecos:home:shell";
// Лимит равен 3
$fields = explode(":", $data, 3);
print_r($fields);
?>Неправильный порядок аргументов
В коде перепутаны местами аргументы функции explode(). В текущем виде он вызовет фатальную ошибку. Поменяйте аргументы местами, чтобы скрипт заработал и вывел первый фрукт из списка.
<?php$fruits_str = "apple,orange,banana";$fruits_arr = explode($fruits_str, ",");echo $fruits_arr[0];?>