explode

(PHP 4, PHP 5, PHP 7, PHP 8)

explode使用一個字符串分割另一個字符串

說明

explode(string $separator, string $string, int $limit = PHP_INT_MAX): array

此函數(shù)返回由字符串組成的數(shù)組,每個元素都是 string 的一個子串,它們被字符串 separator 作為邊界點分割出來。

參數(shù)

separator

邊界上的分隔字符。

string

輸入的字符串。

limit

如果設(shè)置了 limit 參數(shù)并且是正數(shù),則返回的數(shù)組包含最多 limit 個元素,而最后那個元素將包含 string 的剩余部分。

如果 limit 參數(shù)是負數(shù),則返回除了最后的 -limit 個元素外的所有元素。

如果 limit 是 0,則會被當做 1。

注意:

在 PHP 8.0 之前,implode() 可以接收兩種參數(shù)順序。 但請注意,explode() 從未支持亂序傳入?yún)?shù):你必須保證 separator 參數(shù)在 string 參數(shù)之前。

返回值

此函數(shù)返回由字符串組成的 array,每個元素都是 string 的一個子串,它們被字符串 separator 作為邊界點分割出來。

如果 separator 為空字符串(""),explode() 將拋出 ValueError。 如果 separator 所包含的值在 string 中找不到,并且使用了負數(shù)的 limit , 那么會返回空的 array, 否則返回包含 string 單個元素的數(shù)組。 如果 separator 值出現(xiàn)在了 string 參數(shù)的開頭或末尾, 將在返回 array 相應的頭部或尾部添加 array 空值。

更新日志

版本 說明
8.0.0 現(xiàn)在開始,當 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_dumpexplode','$input1 ) );
var_dumpexplode','$input2 ) );
var_dumpexplode','$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('|'$str2));

// 負數(shù)的 limit
print_r(explode('|'$str, -1));
?>

以上例程會輸出:

Array
(
    [0] => one
    [1] => two|three|four
)
Array
(
    [0] => one
    [1] => two
    [2] => three
)

注釋

注意: 此函數(shù)可安全用于二進制對象。

參見