php 中 explode 与 split 的区别介绍
今天在使用 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
分析:"." 符号是正则表达式的关键字所以 split 无效,而
explode
有效。