background image

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

有效。