php中explode与split函数的区别_PHP教程
首先来看下两个方法的定义:
函数原型: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有效。
解析可能用斜线,点,或横线分割的日期:
例子 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 是一个正则表达式。如果想要用的分割字符是正则表达式中的特殊字符,要先将其转义。如果觉得 split()(或其它任何 regex 函数)行为古怪的话,请阅读包含在 PHP 发行包中 regex/ 子目录下的 regex.7 文件。该文件是手册页面格式
推荐阅读
-
php中把美国时间转为北京时间的自定义函数分享,美国北京时间_PHP教程
-
PHP与MySQL开发中页面乱码的产生与解决_PHP教程
-
php中的四舍五入函数代码(floor函数、ceil函数、round与intval),ceilintval
-
php中eval函数的危害与正确禁用方法
-
浅析PHP中的i++与++i的区别及效率,浅析php
-
php中Curl函数常用的两个例子_PHP教程
-
php中session_unset与session_destroy的用法与区别
-
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)_PHP教程
-
PHP中fopen,file_get_contents,curl函数的区别,curlgetcontents
-
正则表达式中/i,/g,/ig,/gi,/m的区别和含义,iggi_PHP教程