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 相关文章推荐
让你的PHP同时支持GIF、png、JPEG
Oct 09 PHP
MySQL授权问题总结
May 06 PHP
php 删除数组元素
Jan 16 PHP
PHP 采集心得技巧
May 15 PHP
php常用字符串处理函数实例分析
Nov 22 PHP
PHP数组操作――获取数组最后一个值的方法
Apr 14 PHP
PHP获取文件夹大小函数用法实例
Jul 01 PHP
php根据生日计算年龄的方法
Jul 13 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 PHP
Laravel利用gulp如何构建前端资源详解
Jun 03 PHP
PHP实现腾讯短网址生成api接口实例
Dec 08 PHP
laravel ajax curd 搜索登录判断功能的实现
Apr 17 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的FTP学习(四)
2006/10/09 PHP
生成sessionid和随机密码的例子
2006/10/09 PHP
php通过分类列表产生分类树数组的方法
2015/04/20 PHP
PHP使用token防止表单重复提交的方法
2016/04/07 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
js写的方法实现上传图片之后查看大图
2014/03/05 Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
2014/05/13 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
分享10个优化代码的CSS和JavaScript工具
2016/05/11 Javascript
jQuery插件扩展测试实例
2016/06/21 Javascript
浅谈Web页面向后台提交数据的方式和选择
2016/09/23 Javascript
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
2016/10/27 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
详解AngularJS 模块化
2017/06/14 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
2018/07/24 Javascript
Vue基本指令实例图文讲解
2021/02/25 Vue.js
[25:59]Newbee vs TNC 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python3搜索及替换文件中文本的方法
2015/05/22 Python
Python通过select实现异步IO的方法
2015/06/04 Python
Python实现股市信息下载的方法
2015/06/15 Python
十条建议帮你提高Python编程效率
2016/02/16 Python
在python中利用numpy求解多项式以及多项式拟合的方法
2019/07/03 Python
Java多线程实现四种方式原理详解
2020/06/02 Python
HTML5中使用json对象的实例代码
2018/09/10 HTML / CSS
Argos官网:英国家喻户晓的百货零售连锁商
2017/04/03 全球购物
迪卡侬波兰体育用品商店:Decathlon波兰
2020/03/31 全球购物
班主任个人工作反思
2014/04/28 职场文书
创先争优宣传标语
2014/10/08 职场文书
医疗纠纷调解协议书
2015/08/06 职场文书
3招让你摆脱即兴讲话冷场尴尬
2019/08/08 职场文书
详解分布式系统中如何用python实现Paxos
2021/05/18 Python
Pillow图像处理库安装及使用
2022/04/12 Python