PHP 实现explort() 功能的详解


Posted in PHP onJune 20, 2013
<?php
/**
 * PHP 实现explort() 功能的详解
 */
$str = ',1,2,3,4,321321,aaa,bbb';
function myExplode($seg,$str,$limit=0){
   $_ret = array(0=>'');
   $len = strlen($str);
   $slen = strlen($seg);
   $_limit = 0;
   for($i=0; $i<$len; $i++){
      if(substr($str,$i,$slen) == $seg ){
          $_limit++;
          $i += $slen-1; 
          continue;
      }else{
          $_ret[$_limit] .= $str[$i]; 
      }
   }
   if($limit < 0 )
      $_ret = array_slice($_ret, 0 , $limit );
   else{
      $_ret = $limit >= count($_ret) ? $_ret :  array_merge(array_slice($_ret, 0 , $limit-1 ), array(implode( $seg , array_slice($_ret,$limit-1))));
   }
   return $_ret;
}
var_dump(myExplode("4",$str));
echo "<br>";
var_dump(explode("4",$str));
echo "<br>";
?>

支持 limit 为负。。分割符为字符串
PHP 相关文章推荐
PHP的FTP学习(三)
Oct 09 PHP
PHP中“简单工厂模式”实例代码讲解
Sep 04 PHP
深入PHP中慎用双等于(==)的详解
Jun 06 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
Jun 23 PHP
ThinkPHP查询中的魔术方法简述
Jun 25 PHP
PHP中new static() 和 new self() 的区别介绍
Jan 09 PHP
php实现redis数据库指定库号迁移的方法
Jan 14 PHP
php校验表单检测字段是否为空的方法
Mar 20 PHP
PHP使用递归生成文章树
Apr 21 PHP
php面向对象编程self和static的区别
May 08 PHP
微信支付的开发流程详解
Sep 13 PHP
在Laravel 的 Blade 模版中实现定义变量
Oct 14 PHP
PHP 简易输出CSV表格文件的方法详解
Jun 20 #PHP
使用Linux五年积累的一些经验技巧
Jun 20 #PHP
解析PHP高效率写法(详解原因)
Jun 20 #PHP
php代码书写习惯优化小结
Jun 20 #PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
Jun 20 #PHP
解析如何用php screw加密php源代码
Jun 20 #PHP
php_screw 1.5:php加密: 安装与使用详解
Jun 20 #PHP
You might like
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
2009/11/27 PHP
解析php中获取url与物理路径的总结
2013/06/21 PHP
Laravel5.1自定义500错误页面示例
2016/10/09 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
JQuery中dataGrid设置行的高度示例代码
2014/01/03 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
七个很有意思的PHP函数
2014/05/12 Javascript
纯js实现遮罩层效果原理分析
2014/05/27 Javascript
get(0).tagName获得作用标签示例代码
2014/10/08 Javascript
jQuery中bind()方法用法实例
2015/01/19 Javascript
jQuery实现复选框批量选择与反选的方法
2015/06/17 Javascript
jquery实现动静态条形统计图
2015/08/17 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
js获取html页面代码中图片地址的实现代码
2018/03/05 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
Egg.js 中 AJax 上传文件获取参数的方法
2018/10/10 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
2019/11/07 jQuery
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
盘点提高 Python 代码效率的方法
2014/07/03 Python
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
Python3打包exe代码2种方法实例解析
2020/02/17 Python
Python 字符串池化的前提
2020/07/03 Python
python 多线程死锁问题的解决方案
2020/08/25 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
CSS3 translate导致字体模糊的实例代码
2019/08/30 HTML / CSS
施华洛世奇韩国官网:SWAROVSKI韩国
2018/06/05 全球购物
数据库的约束含义
2012/09/09 面试题
施工人员岗位职责
2013/12/12 职场文书
习总书记三严三实学习心得体会
2014/10/13 职场文书
购房委托书
2014/10/15 职场文书
医院营销工作计划
2015/01/16 职场文书
2015年医德考评自我评价
2015/03/03 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
CSS中em的正确打开方式详解
2021/04/08 HTML / CSS
详解PHP用mb_string处理windows中文字符
2021/05/26 PHP
oracle删除超过N天数据脚本的方法
2022/02/28 Oracle