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

# explode

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

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

### Описание

function 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], PHP_EOL; // кусок1
    echo $pieces[1], PHP_EOL; // кусок2

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

    ?>

Пример #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() - Объединяет элементы массива в строку

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open