(PHP 4, PHP 5, PHP 7, PHP 8)
explode — 使用一個字符串分割另一個字符串
$separator
, string $string
, int $limit
= PHP_INT_MAX
): array
此函數(shù)返回由字符串組成的數(shù)組,每個元素都是
string
的一個子串,它們被字符串
separator
作為邊界點分割出來。
separator
邊界上的分隔字符。
string
輸入的字符串。
limit
如果設(shè)置了
limit
參數(shù)并且是正數(shù),則返回的數(shù)組包含最多
limit
個元素,而最后那個元素將包含
string
的剩余部分。
如果
limit
參數(shù)是負(fù)數(shù),則返回除了最后的
-limit
個元素外的所有元素。
如果 limit
是 0,則會被當(dāng)做 1。
注意:
在 PHP 8.0 之前,implode() 可以接收兩種參數(shù)順序。 但請注意,explode() 從未支持亂序傳入?yún)?shù):你必須保證
separator
參數(shù)在string
參數(shù)之前。
此函數(shù)返回由字符串組成的 array,每個元素都是
string
的一個子串,它們被字符串
separator
作為邊界點分割出來。
如果 separator
為空字符串(""),explode()
將拋出 ValueError。
如果
separator
所包含的值在
string
中找不到,并且使用了負(fù)數(shù)的 limit
,
那么會返回空的 array,
否則返回包含 string
單個元素的數(shù)組。
如果 separator
值出現(xiàn)在了
string
參數(shù)的開頭或末尾,
將在返回 array 相應(yīng)的頭部或尾部添加 array 空值。
版本 | 說明 |
---|---|
8.0.0 |
現(xiàn)在開始,當(dāng) separator 參數(shù)傳入空字符串時("" ),
explode() 會拋出 ValueError。
在早期版本中,explode() 會返回 false 。
|
示例 #1 explode() 例子
<?php
// 示例 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
// 示例 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() return examples
<?php
/*
字符串內(nèi)不包含分隔字符時,
會簡單返回只有一個原始字符串元素的 array。
*/
$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
參數(shù)的例子
<?php
$str = 'one|two|three|four';
// 正數(shù)的 limit
print_r(explode('|', $str, 2));
// 負(fù)數(shù)的 limit
print_r(explode('|', $str, -1));
?>
以上例程會輸出:
Array ( [0] => one [1] => two|three|four ) Array ( [0] => one [1] => two [2] => three )
注意: 此函數(shù)可安全用于二進制對象。