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写MySQL数据 实现代码
Jun 15 PHP
php小偷相关截取函数备忘
Nov 28 PHP
使用php显示搜索引擎来的关键词
Feb 13 PHP
ThinkPHP中Session用法详解
Nov 29 PHP
PHP大神的十大优良习惯
Sep 14 PHP
2017年最新PHP经典面试题目汇总(上篇)
Mar 17 PHP
详谈php ip2long 出现负数的原因及解决方法
Apr 05 PHP
Yii框架实现的验证码、登录及退出功能示例
May 20 PHP
PHP实现权限管理功能示例
Sep 22 PHP
PHP实现随机数字、字母的验证码功能
Aug 01 PHP
PHP中“=&gt;
Mar 01 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
Jan 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判断远程图片是否存在的几种方法
2014/05/04 PHP
教你如何开启shopnc b2b2c 伪静态
2014/10/21 PHP
php从给定url获取文件扩展名的方法
2015/03/14 PHP
IE与FireFox的兼容性问题分析
2007/04/22 Javascript
基于javascipt-dom编程 table对象的使用
2013/04/22 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
2014/10/22 Javascript
jQuery动态效果显示人物结构关系图的方法
2015/05/07 Javascript
jQuery实现简单的列表式导航菜单效果代码
2015/08/31 Javascript
分享两款带遮罩的jQuery弹出框
2015/12/30 Javascript
location.hash保存页面状态的技巧
2016/04/28 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
JavaScript动态绑定详解
2017/09/14 Javascript
关于Vue组件库开发详析
2018/07/01 Javascript
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
2020/05/26 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
2020/11/19 Javascript
Python深入学习之闭包
2014/08/31 Python
python 阶乘累加和的实例
2019/02/01 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
2019/02/21 Python
Django 配置多站点多域名的实现步骤
2019/05/17 Python
Flask框架模板渲染操作简单示例
2019/07/31 Python
Python SELENIUM上传文件或图片实现过程
2019/10/28 Python
python matplotlib实现将图例放在图外
2020/04/17 Python
如何在Python对Excel进行读取
2020/06/04 Python
Django haystack实现全文搜索代码示例
2020/11/28 Python
HTML5 canvas实现雪花飘落特效
2016/03/08 HTML / CSS
丑小鸭教学反思
2014/02/03 职场文书
求职信格式要求
2014/05/23 职场文书
2014年秋季开学演讲稿
2014/05/24 职场文书
美食节策划方案
2014/05/26 职场文书
区政府领导班子个人对照检查材料
2014/09/25 职场文书
初中作文评语集锦
2014/12/25 职场文书
考研复习计划
2015/01/19 职场文书
2015年十月一日放假通知
2015/08/18 职场文书
Java异常处理try catch的基本用法
2021/12/06 Java/Android
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
2022/04/06 Python