explode

(PHP 4, PHP 5, PHP 7, PHP 8)

explodeРазбивает строку разделителем

Описание

explode(string $separator, string $string, int $limit = PHP_INT_MAX): array

Функция возвращает массив строк, каждая из которых — подстрока, которая образовалась за счёт разделения строки string по границам, которые образовала строка-разделитель separator.

Список параметров

separator

Разделитель.

string

Входная строка.

limit

Функция вернёт массив, который будет содержать максимум limit элементов, при этом последний элемент будет содержать остаток строки string.

Функция вернёт все компоненты за вычетом заданного в параметре limit количества элементов с конца, если параметр limit отрицательный.

Функция расценит значение limit как 1, если параметр равен нулю.

Замечание:

До PHP 8.0 функция implode() принимала параметры в любом порядке. Функция explode() никогда этого не поддерживала: убедитесь, что разделитель separator идёт перед строкой string.

Возвращаемые значения

Функция возвращает массив (array) строк (string), который она создаёт разделением строки string по границам, которые образовал разделитель separator.

Функция explode() выбрасывает исключение ValueError, если разделитель separator — пустая строка "". Функция возвращает пустой массив (array), если разделителя separator нет в строке string и задали отрицательное значение параметра limit, иначе возвращает массив, который содержит строку string. Функция добавит значения как пустые значения массива (array) в первой или в последней позиции массива (array), который она возвращает, если значения разделителя separator появляются в начале или в конце строки string, соответственно.

Список изменений

Версия Описание
8.0.0 Теперь функция explode() выбрасывает исключение TypeError, если разделитель separator — пустая строка "". Раньше функция explode() вместо исключения возвращала false.

Примеры

Пример #1 Пример использования функции explode()

<?php

// Пример 1
$pizza = "кусок1 кусок2 кусок3 кусок4 кусок5 кусок6";
$pieces = explode(" ", $pizza);
echo
$pieces[0]; // кусок1
echo $pieces[1]; // кусок2

// Пример 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list(
$user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo
$user; // foo
echo $pass; // *

?>

Пример #2 Пример значения, которое возвращает функция explode()

<?php

/**
* Строка, которая не содержит разделителя, будет
* просто возвращать массив с одним значением оригинальной строки.
*/
$input1 = "hello";
$input2 = "hello,there";
$input3 = ',';
var_dump( explode( ',', $input1 ) );
var_dump( explode( ',', $input2 ) );
var_dump( explode( ',', $input3 ) );

?>

Результат выполнения приведённого примера:

array(1)
(
    [0] => string(5) "hello"
)
array(2)
(
    [0] => string(5) "hello"
    [1] => string(5) "there"
)
array(2)
(
    [0] => string(0) ""
    [1] => string(0) ""
)

Пример #3 Примеры работы функции с параметром limit

<?php

$str
= 'один|два|три|четыре';

// положительный лимит
print_r(explode('|', $str, 2));

// отрицательный лимит
print_r(explode('|', $str, -1));

?>

Результат выполнения приведённого примера:

Array
(
    [0] => один
    [1] => два|три|четыре
)
Array
(
    [0] => один
    [1] => два
    [2] => три
)

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • preg_split() - Разбивает строку по регулярному выражению
  • str_split() - Преобразовывает строку в массив
  • mb_split() - Разделяет строки в многобайтных кодировках через регулярное выражение
  • str_word_count() - Возвращает информацию о словах, входящих в строку
  • strtok() - Разбивает строку на токены
  • implode() - Объединяет элементы массива в строку