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 )