explode

(PHP 4, PHP 5)

explodeSplit a string by string

Description

array explode ( string $delimiter , string $string [, int $limit ] )

Returns an array of strings, each of which is a substring of string formed by splitting it on boundaries formed by the string delimiter.

Parameters

delimiter

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:

Although implode() can, for historical reasons, accept its parameters in either order, explode() cannot. You must ensure that the delimiter argument comes before the string argument.

Return Values

Returns an array of strings created by splitting the string parameter on boundaries formed by the delimiter.

If delimiter is an empty string (""), explode() will return FALSE. If delimiter 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.

Changelog

Version Description
5.1.0 Support for negative limits was added
4.0.1 The limit parameter was added

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";
var_dumpexplode','$input1 ) );
var_dumpexplode','$input2 ) );

?>

The above example will output:

array(1)
(
    [0] => string(5) "hello"
)
array(2)
(
    [0] => string(5) "hello"
    [1] => string(5) "there"
)

Example #3 limit parameter examples

<?php
$str 
'one|two|three|four';

// positive limit
print_r(explode('|'$str2));

// negative limit (since PHP 5.1)
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

Коментарии

Автор:
Be careful, while most non-alphanumeric data types as input strings return an array with an empty string when used with a valid separator, true returns an array with the string "1"!

var_dump(explode(',', null)); //array(1) { [0]=> string(0) "" }
var_dump(explode(',', false)); //array(1) { [0]=> string(0) "" }

var_dump(explode(',', true)); //array(1) { [0]=> string(1) "1" }
2021-02-10 23:42:58
http://php5.kiev.ua/manual/ru/function.explode.html
Автор:
Note that an empty input string will still result in one element in the output array. This is something to remember when you are processing unknown input.

For example, maybe you are splitting part of a URI by forward slashes (like "articles/42/show" => ["articles", "42", "show"]). And maybe you expect that an empty URI will result in an empty array ("" => []). Instead, it will contain one element, with an empty string:

<?php

$uri 
'';
$parts explode('/'$uri);
var_dump($parts);

?>

Will output:

array(1) {
  [0]=>
  string(0) ""
}

And not:

array(0) {
}
2022-03-20 01:53:51
http://php5.kiev.ua/manual/ru/function.explode.html
Автор:
If you want to directly take a specific value without having to store it in another variable, you can implement the following:

$status = 'Missing-1';
 
echo $status_only = explode('-', $status)[0];

// Missing
2022-10-06 18:04:52
http://php5.kiev.ua/manual/ru/function.explode.html
Автор:
If your data is smaller than the expected count with the list expansion:

<?php
$data 
"foo:*:1023:1000::/home/foo:/bin/sh";
list(
$user$pass$uid$gid$gecos$home$shell,$nu) = explode(":"$data);
?>

The result is a warning not an error:

PHP Warning:  Undefined array key 7 in ...

The solution is to pad the array to the expected length:

<?php
$data 
"foo:*:1023:1000::/home/foo:/bin/sh";
list(
$user$pass$uid$gid$gecos$home$shell,$nu) = array_padexplode(":"$data), 8""); 
// where 8 is the count of the list arguments
?>
2023-11-10 03:12:35
http://php5.kiev.ua/manual/ru/function.explode.html

    Поддержать сайт на родительском проекте КГБ