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 相关文章推荐
mysql 字段类型说明
Apr 27 PHP
PHP Smarty生成EXCEL文档的代码
Aug 23 PHP
php运行出现Call to undefined function curl_init()的解决方法
Nov 02 PHP
PHP数据库调用类调用实例(详细注释)
Jul 12 PHP
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
Jun 21 PHP
yii去掉必填项中星号的方法
Dec 28 PHP
PHP批量获取网页中所有固定种子链接的方法
Nov 18 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
May 17 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
Apr 21 PHP
Ubuntu彻底删除PHP7.0的方法
Jul 27 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
Oct 21 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生成静态页面详解
2006/11/19 PHP
PHP Socket 编程
2010/04/09 PHP
PHP中将ip地址转成十进制数的两种实用方法
2013/08/15 PHP
php实现专业获取网站SEO信息类实例
2015/04/02 PHP
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
JQuery 国际象棋棋盘 实现代码
2009/06/26 Javascript
JQuery.uploadify 上传文件插件的使用详解 for ASP.NET
2010/01/22 Javascript
table insertRow、deleteRow定义和用法总结
2014/05/14 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
老生常谈 js中this的指向
2016/06/30 Javascript
使用JQuery选择HTML遍历函数的方法
2016/09/17 Javascript
JavaScript评论点赞功能的实现方法
2017/03/13 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
vue项目中v-model父子组件通信的实现详解
2017/12/10 Javascript
vue.js图片转Base64上传图片并预览的实现方法
2018/08/02 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
使用Sonarqube扫描Javascript代码的示例
2018/12/26 Javascript
Vue登录主页动态背景短视频制作
2019/09/21 Javascript
mpvue微信小程序开发之实现一个弹幕评论
2019/11/24 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
python3生成随机数实例
2014/10/20 Python
Python实现的简单发送邮件脚本分享
2014/11/07 Python
深入理解Javascript中的this关键字
2015/03/27 Python
浅谈python中requests模块导入的问题
2018/05/18 Python
python处理DICOM并计算三维模型体积
2019/02/26 Python
Django框架实现的分页demo示例
2019/05/25 Python
微信小程序python用户认证的实现
2019/07/29 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
2020/06/02 Python
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
吉列剃须刀英国官网:Gillette英国
2019/03/28 全球购物
文化宣传方案
2014/03/13 职场文书
销售求职信范文
2014/05/26 职场文书
安全员岗位职责范本
2015/04/11 职场文书
交通事故案件代理词
2015/05/23 职场文书
创业分两种人:那么哪些适合创业?,哪些适合不适合创业呢?
2019/08/23 职场文书