在一個層面來看php中的explode與split函數沒什麼區別都用來把字元以什麼分開成數組了,但仔細看一下explode與split還是有區別的,下面我來給大家介紹一下。
首先來看下兩個方法的定義:
函數原型:array split (string $pattern, string $string [, int $limit])
函數原型:array explode ( string $separator, string $string [, int $limit])
初看沒有啥差別,貌似功能都一樣。我就犯了這個錯誤。 請注意兩個函數的第一個參數string $pattern和string separator,一個是$pattern說明是正則字串,一個是$separator是一般字元串。 看下面的代碼:
| 代碼如下 |
複製代碼 |
$test = end(explode('.', 'abc.txt')); echo $test;//output txt 換成: $test1 = end(split('.','abc.txt')); echo $test1;//no output |
用split的正確做法是:加轉義符號
$test1 = end(split('.','abc.txt'));
echo $test1;//output txt
分析:"." 符號是Regex的關鍵字所以split無效,而explode有效。
解析可能用斜線,點,或橫線分割的日期:
例子 2. split() 例子
// 分隔字元可以是斜線,點,或橫線
$date = "04/30/1973 ";
list($month, $day, $year) = split ( '[/.-] ', $date);
echo "Month: $month; Day: $day; Year: $year
n ";
?>
想仿效 Perl 中類似的 @chars = split( ' ', $str) 行為,請參考 preg_split() 函數中的例子。
注意 pattern 是一個Regex。如果想要用的分割字元是Regex中的特殊字元,要先將其轉義。如果覺得 split()(或其它任何 regex 函數)行為古怪的話,請閱讀包含在 PHP 發行包中 regex/ 子目錄下的 regex.7 檔案。該檔案是手冊頁面格式
http://www.bkjia.com/PHPjc/632794.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632794.htmlTechArticle在一個層面來看php中的explode與split函數沒什麼區別都用來把字元以什麼分開成數組了,但仔細看一下explode與split還是有區別的,下面我來給...