(PHP 4, PHP 5, PHP 7, PHP 8)
explode — Разбивает строку разделителем
Функция возвращает массив строк, каждая из которых — подстрока,
которая образовалась за счёт разделения строки 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] => три )
Замечание: Функция безопасна для обработки данных в двоичной форме.