explode() 函數可以把字符串分割為數組。
語法:explode(separator,string,limit)。
本函數返回由字符串組成的數組,其中的每個元素都是由 separator 作為邊界點分割出來的子字符串。
separator 參數不能是空字符串。如果 separator 為空字符串(""),explode() 將返回 FALSE。如果 separator 所包含的值在 string 中找不到,那麼 explode() 將返回包含 string 中單個元素的數組。
如果設置了 limit 參數,則返回的數組包含最多 limit 個元素,而最後那個元素將包含 string 的剩余部分。
如果 limit 參數是負數,則返回除了最後的 -limit 個元素外的所有元素。此特性是 PHP 5.1.0 中新增的。
<?php // Example 1 $fruit = "Apple Banana Orange Lemon Mango Pear"; $fruitArray = explode(" ", $fruit); echo $fruitArray[0]; // Apple echo $fruitArray[1]; // Banana // Example 2 $data = "gonn:*:bkjia:1000::/home/foo:/bin/sh"; list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data); echo $user; // gonn echo $pass; // * ?>
程序運行結果:
Apple Banana gonn *
<?php $str = 'one|two|three|four'; // positive limit print_r(explode('|', $str, 2)); // negative limit (since PHP 5.1) print_r(explode('|', $str, -1)); ?>
程序運行結果:
Array ( [0] => one [1] => two|three|four ) Array ( [0] => one [1] => two [2] => three )
<?php // converts pure string into a trimmed keyed array function string2KeyedArray($string, $delimiter = ',', $kv = '=>') { if ($a = explode($delimiter, $string)) { // create parts foreach ($a as $s) { // each part if ($s) { if ($pos = strpos($s, $kv)) { // key/value delimiter $ka[trim(substr($s, 0, $pos))] = trim(substr($s, $pos + strlen($kv))); } else { // key delimiter not found $ka[] = trim($s); } } } return $ka; } } // string2KeyedArray $string = 'a=>1, b=>23, $a, c=>45%, true, d=>ab c'; print_r(string2KeyedArray($string)); ?>
程序運行結果:
Array ( [a] => 1 [b] => 23 [0] => $a [c] => 45% [1] => true [d] => ab c )