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面向对象全攻略 (二) 实例化对象 使用对象成员
Sep 30 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
Oct 27 PHP
PHP中call_user_func_array()函数的用法演示
Feb 05 PHP
解析PHP正则提取或替换img标记属性
Jun 26 PHP
PHP用身份证号获取星座和生肖的方法
Nov 07 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
Jun 23 PHP
PHP间隔一段时间执行代码的方法
Dec 02 PHP
PHP模板引擎Smarty中的保留变量用法分析
Apr 11 PHP
PHP对象克隆clone用法示例
Sep 28 PHP
thinkphp3.2实现在线留言提交验证码功能
Jul 19 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
Sep 29 PHP
php操作mongodb封装类与用法实例
Sep 01 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/11/16 PHP
php模拟asp中的XmlHttpRequest实现http请求的代码
2011/03/24 PHP
PHP验证码函数代码(简单实用)
2013/09/29 PHP
javascript高级学习笔记整理
2011/08/14 Javascript
javascript 文件的同步加载与异步加载实现原理
2012/12/13 Javascript
jquery怎样实现ajax联动框(一)
2013/03/08 Javascript
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
javascript alert乱码的解决方法
2013/11/05 Javascript
jQuery DOM插入节点操作指南
2015/03/03 Javascript
js实现Select列表内容自动滚动效果代码
2015/08/20 Javascript
JQuery日历插件My97DatePicker日期范围限制
2016/01/20 Javascript
javascript用正则表达式过滤空格的实现代码
2016/06/14 Javascript
Bootstrap与Angularjs的模态框实例代码
2017/08/03 Javascript
深入理解ES7的async/await的用法
2017/09/09 Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
2017/09/18 jQuery
浅谈node的事件机制
2017/10/09 Javascript
解析Vue 2.5的Diff算法
2017/11/28 Javascript
微信小程序开发之左右分栏效果的实例代码
2019/05/20 Javascript
深入理解Antd-Select组件的用法
2020/02/25 Javascript
[56:00]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第一局
2016/03/05 DOTA
Python random模块(获取随机数)常用方法和使用例子
2014/05/13 Python
Python数据类型详解(三)元祖:tuple
2016/05/08 Python
Python md5与sha1加密算法用法分析
2017/07/14 Python
pandas数据处理基础之筛选指定行或者指定列的数据
2018/05/03 Python
python内打印变量之%和f的实例
2020/02/19 Python
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
Nike瑞士官网:Nike CH
2021/01/18 全球购物
电子商务专业在校生实习自我鉴定
2013/09/29 职场文书
中餐厅主管的职责范文
2014/02/04 职场文书
人力资源部经理的岗位职责
2014/03/04 职场文书
单位承诺书格式
2014/05/21 职场文书
党的群众路线教育实践活动个人整改方案
2014/09/21 职场文书
《我要的是葫芦》教学反思
2016/02/18 职场文书
2016年青少年禁毒宣传教育活动总结(学校)
2016/04/05 职场文书
MySQL 全文检索的使用示例
2021/06/07 MySQL
Python可变与不可变数据和深拷贝与浅拷贝
2022/04/06 Python