explode
(PHP 4, PHP 5, PHP 7, PHP 8)
explode — Split a string by a string
Description
explode(string $separator, string $string, int $limit = PHP_INT_MAX): array
Returns an array of strings, each of which is a substring of string
formed by splitting it on boundaries formed by the string separator
.
Parameters
-
separator
-
The boundary string.
-
string
-
The input string.
-
limit
-
If
limit
is set and positive, the returned array will contain a maximum oflimit
elements with the last element containing the rest ofstring
.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.
Return Values
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.
Changelog
Version | Description |
---|---|
8.0.0 | explode() will now throw ValueError when separator parameter is given an empty string ("" ). Previously, explode() returned false instead. |
Examples
Example #1 explode() examples
<?php // Example 1 $pizza = "piece1 piece2 piece3 piece4 piece5 piece6"; $pieces = explode(" ", $pizza); echo $pieces[0]; // piece1 echo $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; // foo echo $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 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 )
Notes
Note: This function is binary-safe.
See Also
- preg_split() - Split string by a regular expression
- str_split() - Convert a string to an array
- mb_split() - Split multibyte string using regular expression
- str_word_count() - Return information about words used in a string
- strtok() - Tokenize string
- implode() - Join array elements with a string
© 1997–2021 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.
https://www.php.net/manual/en/function.explode.php