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 相关文章推荐
3.从实例开始
Oct 09 PHP
《PHP边学边教》(02.Apache+PHP环境配置――下篇)
Dec 13 PHP
用PHP实现递归循环每一个目录
Aug 08 PHP
php中函数前加&amp;符号的作用分解
Jul 08 PHP
php格式化日期实例分析
Nov 12 PHP
php中mail函数发送邮件失败的解决方法
Dec 24 PHP
Windows下编译PHP5.4和xdebug全记录
Apr 03 PHP
php curl 获取https请求的2种方法
Apr 27 PHP
php用户登录之cookie信息安全分析
May 13 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
Aug 15 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
Nov 20 PHP
PHP Swoole异步Redis客户端实现方法示例
Oct 24 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写的MySQL数据库用户认证系统代码
2007/03/22 PHP
PHP HTML JavaScript MySQL代码如何互相传值的方法分享
2012/09/30 PHP
PHP读取PDF内容配合Xpdf的使用
2012/11/24 PHP
深入HTTP响应状态码速查表的详解
2013/06/07 PHP
php二维数组转成字符串示例
2014/02/17 PHP
php curl 获取https请求的2种方法
2015/04/27 PHP
Smarty变量用法详解
2016/05/11 PHP
thinkphp中多表查询中防止数据重复的sql语句(必看)
2016/09/22 PHP
jquery.pagination.js 无刷新分页实现步骤分享
2012/05/23 Javascript
jQuery Tools tab使用介绍
2012/07/14 Javascript
jquery获取选中的文本和值的方法
2014/07/08 Javascript
JS非Alert实现网页右下角“未读信息”效果弹窗
2015/09/26 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
js中document.referrer实现移动端返回上一页
2017/02/22 Javascript
详解使用angular-cli发布i18n多国语言Angular应用
2017/05/20 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
开源一个微信小程序仪表盘组件过程解析
2019/07/30 Javascript
解析JS在获取当前月的最后一天遇到的坑
2019/08/30 Javascript
React 实现车牌键盘的示例代码
2019/12/20 Javascript
vue递归获取父元素的元素实例
2020/08/07 Javascript
python翻译软件实现代码(使用google api完成)
2013/11/26 Python
Python3实现从指定路径查找文件的方法
2015/05/22 Python
python3中类的继承以及self和super的区别详解
2019/06/26 Python
Python实现数值积分方式
2019/11/20 Python
爬虫代理的cookie如何生成运行
2020/09/22 Python
Python高阶函数与装饰器函数的深入讲解
2020/11/10 Python
Python 远程开关机的方法
2020/11/18 Python
Django filter动态过滤与排序实现过程解析
2020/11/26 Python
网页布局中CSS样式无效的十个重要原因详解
2017/08/10 HTML / CSS
英国运动风奢侈品购物网站:Maison De Fashion
2020/08/28 全球购物
党员对照检查材料思想汇报
2014/09/16 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
公司开除员工通知
2015/04/22 职场文书
2015年办公室文员工作总结
2015/04/24 职场文书
python 机器学习的标准化、归一化、正则化、离散化和白化
2021/04/16 Python