(PHP 4, PHP 5, PHP 7, PHP 8)
explode — Split a string by a string
Returns an array of strings, each of which is a substring of
string formed by splitting it on
boundaries formed by the string separator.
separatorThe boundary string.
stringThe input string.
limit
If limit is set and positive, the returned array will contain
a maximum of limit elements with the last
element containing the rest of string.
If the limit parameter is negative, all components
except the last -limit are returned.
If the limit parameter is zero, then this is treated as 1.
Note:
Prior to PHP 8.0, implode() accepted its parameters in either order. explode() has never supported this: you must ensure that the
separatorargument comes before thestringargument.
Returns an array of strings
created by splitting the string parameter on
boundaries formed by the separator.
If separator is an empty string (""),
explode() throws a ValueError.
If separator contains a value that is not
contained in string and a negative
limit is used, then an empty array will be
returned, otherwise an array containing
string will be returned. If separator
values appear at the start or end of string, said values
will be added as an empty array value either in the first or last
position of the returned array respectively.
| Version | Description |
|---|---|
| 8.0.0 |
explode() will now throw ValueError
when separator parameter is given an empty string
("").
Previously, explode() returned false instead.
|
Example #1 explode() examples
<?php
// Example 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0], PHP_EOL; // piece1
echo $pieces[1], PHP_EOL; // piece2
// Example 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; // *
?>
Example #2 explode() return examples
<?php
/*
A string that doesn't contain the delimiter will simply
return a one-length array of the original string.
*/
$input1 = "hello";
$input2 = "hello,there";
$input3 = ',';
var_dump( explode( ',', $input1 ) );
var_dump( explode( ',', $input2 ) );
var_dump( explode( ',', $input3 ) );
?>The above example will output:
array(1)
(
[0] => string(5) "hello"
)
array(2)
(
[0] => string(5) "hello"
[1] => string(5) "there"
)
array(2)
(
[0] => string(0) ""
[1] => string(0) ""
)
Example #3 limit parameter examples
<?php
$str = 'one|two|three|four';
// positive limit
print_r(explode('|', $str, 2));
// negative limit
print_r(explode('|', $str, -1));
?>The above example will output:
Array
(
[0] => one
[1] => two|three|four
)
Array
(
[0] => one
[1] => two
[2] => three
)
Note: This function is binary-safe.