(PHP 4, PHP 5, PHP 7, PHP 8)
explode — Разбивает строку с помощью разделителя
$separator
, string $string
, int $limit
= PHP_INT_MAX
): array
Возвращает массив строк, полученных разбиением строки
string
с использованием
separator
в качестве разделителя.
separator
Разделитель.
string
Входная строка.
limit
Если аргумент limit
является положительным,
возвращаемый массив будет содержать максимум limit
элементов, при этом последний элемент будет содержать остаток строки
string
.
Если параметр limit
отрицателен, то
будут возвращены все компоненты, кроме последних
-limit
.
Если limit
равен нулю, то он расценивается как 1.
Замечание:
До PHP 8.0 функция implode() принимала параметры в любом порядке. Функция explode() никогда этого не поддерживала: убедитесь в том, что
separator
указан перед аргументомstring
.
Возвращает массив (array) строк (string),
созданный делением параметра string
по
границам, указанным параметром separator
.
Если separator
является пустой строкой (""),
explode() выбрасывает ValueError. Если
separator
не содержится в string
,
и используется отрицательный limit
, то
будет возвращён пустой массив (array), иначе будет
возвращён массив, содержащий string
.
Если значения separator
появляются в начале или в конце string
,
указанные значения будут добавлены как пустое значение массива (array),
либо в первой, либо в последней позиции возвращённого массива (array) соответственно.
Версия | Описание |
---|---|
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] => три )
Замечание: Эта функция безопасна для обработки данных в двоичной форме.