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 相关文章推荐
建立文件交换功能的脚本(二)
Oct 09 PHP
基于mysql的论坛(6)
Oct 09 PHP
php性能优化分析工具XDebug 大型网站调试工具
May 22 PHP
分享一下贝贝成长进度的php代码
Sep 14 PHP
解析PHP提交后跳转
Jun 23 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
Jul 03 PHP
PHP中ob_start函数的使用说明
Nov 11 PHP
php实现的click captcha点击验证码类实例
Sep 23 PHP
php导出csv文件,可导出前导0实例代码
Nov 16 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
Aug 03 PHP
php readfile()修改文件上传大小设置
Aug 11 PHP
TP5框架实现签到功能的方法分析
Apr 05 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中使用正则表达式进行查找替换
2013/06/13 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
laravel5.0在linux下解决.htaccess无效和去除index.php的问题
2019/10/16 PHP
Json对象替换字符串占位符实现代码
2010/11/17 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
探讨javascript是不是面向对象的语言
2013/11/21 Javascript
js读取配置文件自写
2014/02/11 Javascript
浅谈JavaScript超时调用和间歇调用
2015/08/30 Javascript
Bootstrap每天必学之弹出框(Popover)插件
2016/04/25 Javascript
微信JS SDK接入的几点注意事项(必看篇)
2017/06/23 Javascript
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
2017/06/26 jQuery
基于jquery的on和click的区别详解
2018/01/15 jQuery
vue判断input输入内容全是空格的方法
2018/03/02 Javascript
详解微信小程序用定时器实现倒计时效果
2019/04/30 Javascript
详解JavaScript中的坐标和距离
2019/05/27 Javascript
vue实现跳转接口push 转场动画示例
2019/11/01 Javascript
微信小程序分享小程序码的生成(带参数)以及参数的获取
2020/03/25 Javascript
谈谈JavaScript令人迷惑的==与+
2020/08/31 Javascript
小程序实现可拖动的悬浮按钮
2020/09/07 Javascript
Python+Opencv识别两张相似图片
2020/03/23 Python
Python正则表达式如何进行字符串替换实例
2016/12/28 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
基于Python中单例模式的几种实现方式及优化详解
2018/01/09 Python
Python读入mnist二进制图像文件并显示实例
2020/04/24 Python
python实现飞船游戏的纵向移动
2020/04/24 Python
巴黎卡诗美国官方网站:始于1964年的头发头皮护理专家
2017/07/10 全球购物
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
Vans(范斯)新西兰官方网站:美国原创极限运动品牌
2020/09/19 全球购物
大学辅导员事迹材料
2014/02/05 职场文书
促销活动总结范文
2014/04/30 职场文书
美术社团活动总结
2014/06/27 职场文书
2014年大学生社会实践自我鉴定
2014/09/26 职场文书
2017新年晚会开幕词
2016/03/03 职场文书
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python
使用nginx配置访问wgcloud的方法
2021/06/26 Servers
Python可视化神器pyecharts之绘制箱形图
2022/07/07 Python