(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
.
separator
The boundary string.
string
The 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
separator
argument comes before thestring
argument.
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]; // piece1echo $pieces[1]; // piece2// Example 2$data = "foo:*:1023:1000::/home/foo:/bin/sh";list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);echo $user; // fooecho $pass; // *?>
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 limitprint_r(explode('|', $str, 2));// negative limitprint_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.