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 相关文章推荐
PHP5与MySQL数据库操作常用代码 收集
Mar 21 PHP
php curl模拟post提交数据示例
Dec 31 PHP
PHP中array_map与array_column之间的关系分析
Aug 19 PHP
php图片水印添加、压缩、剪切的封装类实现
Apr 18 PHP
PHP新建类问题分析及解决思路
Nov 19 PHP
分享PHP守护进程类
Dec 30 PHP
php获取访问者浏览页面的浏览器类型
Jan 23 PHP
PHP调用接口用post方法传送json数据的实例
May 31 PHP
php获取手机端的号码以及ip地址实例代码
Sep 12 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
Oct 12 PHP
PHP 构造函数和析构函数原理与用法分析
Apr 21 PHP
php中get_object_vars()在数组的实例用法
Feb 22 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
PHPMyAdmin 快速配置方法
2009/05/11 PHP
php calender(日历)二个版本代码示例(解决2038问题)
2013/12/24 PHP
PHP实现动态获取函数参数的方法示例
2018/04/02 PHP
Laravel框架搜索分页功能示例
2019/02/01 PHP
PHP利用百度ai实现文本和图片审核
2019/05/08 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
2019/10/21 PHP
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
2014/01/09 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
javascript基于HTML5 canvas制作画箭头组件
2014/06/25 Javascript
js创建对象的区别示例介绍
2014/07/24 Javascript
Javascript保存网页为图片借助于html2canvas库实现
2014/09/05 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
2016/06/09 Javascript
VUE前端cookie简单操作
2017/10/17 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
vue 路由嵌套高亮问题的解决方法
2018/05/17 Javascript
JavaScript门道之标准库
2018/05/26 Javascript
vue-cli 打包使用history模式的后端配置实例
2018/09/20 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
你不知道的 TypeScript 高级类型(小结)
2020/08/28 Javascript
python实现文件快照加密保护的方法
2015/06/30 Python
详解python string类型 bytes类型 bytearray类型
2017/12/16 Python
Python基于hashlib模块的文件MD5一致性加密验证示例
2018/02/10 Python
深入浅析Python科学计算库Scipy及安装步骤
2019/10/12 Python
python zip()函数使用方法解析
2019/10/31 Python
通过 Django Pagination 实现简单分页功能
2019/11/11 Python
浅析HTML5 Landmark
2020/09/11 HTML / CSS
俄罗斯眼镜网: optikaworld
2016/07/31 全球购物
在线学习西班牙语、法语或其他语言:Babbel.com
2018/02/07 全球购物
应届生幼儿园求职信
2013/11/12 职场文书
美容院营销方案
2014/03/05 职场文书
2014领导班子“四风问题”对照检查材料思想汇报(执法局)
2014/09/21 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
Java使用jmeter进行压力测试
2021/07/09 Java/Android
python turtle绘图
2022/05/04 Python