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(windows版本)中的COM函数
Oct 09 PHP
php预定义常量
Dec 25 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
Sep 20 PHP
解析php入库和出库
Jun 25 PHP
php判断手机访问还是电脑访问示例分享
Jan 20 PHP
PHP实现微信公众平台音乐点播
Mar 20 PHP
PHP内置过滤器FILTER使用实例
Jun 25 PHP
PHP二分查找算法示例【递归与非递归方法】
Sep 29 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
Jan 16 PHP
thinkPHP5.0框架引入Traits功能实例分析
Mar 18 PHP
PHP实现打包下载文件的方法示例
Oct 07 PHP
PHP explode()函数用法讲解
Feb 15 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
人大复印资料处理程序_查询篇
2006/10/09 PHP
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
2010/12/29 PHP
改进:论坛UBB代码自动插入方式
2006/12/22 Javascript
jQuery的text()方法用法分析
2014/12/20 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
基于jQuery实现的美观星级评论打分组件代码
2015/10/30 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
2015/11/02 Javascript
第一次接触神奇的Bootstrap表单
2016/07/27 Javascript
CSS3 3D 技术手把手教你玩转
2016/09/02 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
Vue之Watcher源码解析(1)
2017/07/19 Javascript
微信小程序开发问题之wx.previewImage
2018/12/25 Javascript
vue生命周期与钩子函数简单示例
2019/03/13 Javascript
angular inputNumber指令输入框只能输入数字的实现
2019/12/03 Javascript
Python标准库os.path包、glob包使用实例
2014/11/25 Python
浅谈五大Python Web框架
2017/03/20 Python
Python Series从0开始索引的方法
2018/11/06 Python
对Python信号处理模块signal详解
2019/01/09 Python
python中import与from方法总结(推荐)
2019/03/21 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
决策树剪枝算法的python实现方法详解
2019/09/18 Python
python的sys.path模块路径添加方式
2020/03/09 Python
python使用hdfs3模块对hdfs进行操作详解
2020/06/06 Python
python opencv 实现读取、显示、写入图像的方法
2020/06/08 Python
浅析pandas随机排列与随机抽样
2021/01/22 Python
CSS3 简写animation
2012/05/10 HTML / CSS
Html5 localStorage入门教程
2018/04/26 HTML / CSS
介绍一下RMI的基本概念
2016/12/17 面试题
UNIX操作系统结构由哪几部分组成
2016/02/17 面试题
社区安全生产月活动总结
2014/07/05 职场文书
运动会稿件100字
2014/09/24 职场文书
大学生党员自我剖析材料
2014/10/06 职场文书
2014年大学宣传部工作总结
2014/12/19 职场文书
房产公证书格式
2015/01/26 职场文书
2015年酒店工作总结范文
2015/04/07 职场文书
联谊活动总结范文
2015/05/09 职场文书