PHP中explode函数和split函数的区别小结


Posted in PHP onAugust 24, 2016

一、前言

之所以做这个,是因为这两个函数的作用很像,都是把字符串转换成数组。

二、explode

从下面的例子可以看出,生成的数组是有对应的顺序的。

$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2

// 示例 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *

注意的是,如果第一个参数为空字符串的话,就会产生Warning

var_dump( explode('','asdasd') );

//Warning: explode(): Empty delimiter in /tmp/e80c9663-e392-4f81-8347-35726052678f/code on line 3
//bool(false)

三、split

(PHP 4, PHP 5)

split — 用正则表达式将字符串分割到数组中

注意的是上面并没有PHP 7,也就是说split函数并不支持PHP 7.

$date = "04/30/1973";
list($month, $day, $year) = split ('[/.-]', $date);
echo "Month: $month; Day: $day; Year: $year<br />\n";

//PHP 7 下的报错
Fatal error: Uncaught Error: Call to undefined function split() in /tmp/4d38c290-b4cb-43f5-846a-9fa90784a090/code:4
Stack trace:
#0 {main}
 thrown in /tmp/4d38c290-b4cb-43f5-846a-9fa90784a090/code on line 4

//PHP 5.6 下返回正常
Month: 04; Day: 30; Year: 1973

split的第一个参数为正则表达式,也就是说,如果想要匹配特殊字符,需要转义一下。

$arr='2016\8\11';
$rearr = split ('[/\]', $arr);
var_dump($rearr)

/*
array(3) {
 [0]=>
 string(4) "2016"
 [1]=>
 string(1) "8"
 [2]=>
 string(2) "11"
}
*/

也正是因为要使用正则表达式 pattern 的语法,所以搜索的速度不会很快。

preg_split() 函数使用了 Perl 兼容正则表达式语法,通常是比 split() 更快的替代方案。如果不需要正则表达式的威力,则使用 explode() 更快,这样就不会招致正则表达式引擎的浪费

可能效率的原因导致了PHP 7 中直接放弃了这个函数吧。

四、总结

以上就是总结PHP中explode函数和split函数区别的全部内容,希望对大家的学习和工作能有所帮助。

PHP 相关文章推荐
PHP4实际应用经验篇(3)
Oct 09 PHP
与数据库连接
Oct 09 PHP
echo(),print(),print_r()之间的区别?
Nov 19 PHP
MySQL授权问题总结
May 06 PHP
php中$_REQUEST、$_POST、$_GET的区别和联系小结
Nov 23 PHP
php GUID生成函数和类
Mar 10 PHP
php生成百度sitemap站点地图类函数实例
Oct 17 PHP
PHP三种方式实现链式操作详解
Jan 21 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
Sep 03 PHP
解决Laravel 不能创建 migration 的问题
Oct 09 PHP
浅谈laravel框架sql中groupBy之后排序的问题
Oct 17 PHP
50个优秀经典PHP算法大集合 附源码
Aug 26 PHP
php处理单文件、多文件上传代码分享
Aug 24 #PHP
PHP简单创建压缩图的方法
Aug 24 #PHP
php利用header函数下载各种文件
Aug 24 #PHP
php强制下载文件函数
Aug 24 #PHP
PHP简单实现数字分页功能示例
Aug 24 #PHP
PHP自定义函数获取URL中一级域名的方法
Aug 23 #PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
Aug 23 #PHP
You might like
PHP计算日期相差天数实例分析
2016/02/23 PHP
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
动态添加js事件实现代码
2009/03/12 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
2013/01/11 Javascript
javascript date格式化示例
2013/09/25 Javascript
JQuery中form验证出错信息的查看方法
2013/10/08 Javascript
全面理解面向对象的 JavaScript(来自ibm)
2013/11/10 Javascript
LABjs、RequireJS、SeaJS的区别
2014/03/04 Javascript
javascript模拟实现ajax加载框实例
2014/10/15 Javascript
jQuery前端开发35个小技巧
2016/05/24 Javascript
全面理解闭包机制
2016/07/11 Javascript
Vue-Access-Control 前端用户权限控制解决方案
2017/12/01 Javascript
npm 下载指定版本的组件方法
2018/05/17 Javascript
JavaScript寄生组合式继承原理与用法分析
2019/01/11 Javascript
Javascript迭代、递推、穷举、递归常用算法实例讲解
2019/02/01 Javascript
微信小程序实现限制用户转发功能的实例代码
2020/02/22 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
JavaScript实现像雪花一样的Hexaflake分形
2020/07/07 Javascript
Django中实现一个高性能计数器(Counter)实例
2014/07/09 Python
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
python 截取 取出一部分的字符串方法
2017/03/01 Python
Python3操作SQL Server数据库(实例讲解)
2017/10/21 Python
Python实现的基数排序算法原理与用法实例分析
2017/11/23 Python
python数据结构学习之实现线性表的顺序
2018/09/28 Python
python实现简易动态时钟
2018/11/19 Python
pycharm中选中一个单词替换所有重复单词的实现方法
2020/11/17 Python
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
2018/03/21 HTML / CSS
TripAdvisor印尼站:全球领先的旅游网站
2018/03/15 全球购物
Nike香港官网:Nike HK
2019/03/23 全球购物
中餐厅主管的职责范文
2014/02/04 职场文书
真诚的求职信
2014/07/04 职场文书
出纳年终工作总结2014
2014/12/05 职场文书
党员自评材料范文
2014/12/17 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
用Python实现Newton插值法
2021/04/17 Python
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB