PHP 实现explort() 功能的详解
<?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 实现explort() 功能的详解
复制代码 代码如下: <?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(subst
-
mui上拉加载功能实例详解
最近在做移动端的项目,用到了mui的上拉加载,整理如下: 1.需要引入的css.js <link rel="stylesheet" href="common/mui/css/mui.min.css" rel="external nofollow" > <script src="js/jquery-3.2.0.min.js"></script> <script src="com
-
SQL Server 2016 Alwayson新增功能图文详解
概述 SQLServer2016发布版本到现在已有一年多的时间了,目前最新的稳定版本是SP1版本.接下来就开看看2016在Alwyson上做了哪些改进,记得之前我在写2014Alwayson的时候提到过几个需要改进的问题在2016上已经做了改进. 一.自动故障转移副本数量 在2016之前的版本自动故障转移副本最多只能配置2个副本,在2016上变成了3个. 说明:自动故障转移增加到三个副本影响并不是很大不是非常的重要,多增加一个故障转移副本也意味着你的作业也需要多维护一个副本.重要程度(一般).
-
jQuery实现区域打印功能代码详解
使用CSS控制打印样式,需要设置样式media="print",并且将页面中不需要打印的元素的样式display属性设置为none.如DEMO中,我将页头页脚及其他不需要打印的元素的样式设置如下: <style type="text/css" media="print"> #header,.top_title,#jqprint,#footer,#cssprint h3{display:none} </style> 用jQu
-
FasfDFS整合Java实现文件上传下载功能实例详解
在上篇文章给大家介绍了FastDFS安装和配置整合Nginx-1.13.3的方法,大家可以点击查看下. 今天使用Java代码实现文件的上传和下载.对此作者提供了Java API支持,下载fastdfs-client-java将源码添加到项目中.或者在Maven项目pom.xml文件中添加依赖 <dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</arti
-
iOS开发微信收款到账语音提醒功能思路详解
一.背景 为了解决小商户老板们在频繁交易中不方便核对.确认到账的痛点,产品MM提出了新版本需要支持收款到账语音提醒功能.这篇文章总结了开发过程中遇到的坑和一些小技巧. 二.技术方案 后台唤醒App 收款到账语音提醒需要收款方在收到款后,播放一段TTS合成语音播报金额,微信在前台时可以通过模板消息将需要播报的金额带下来,再请求TTS数据并播放,但是app在挂起或者被kill掉的情况下要如何请求语音数据并播放呢? iOS提供了两种方式唤醒处于挂起或已经被kill掉的app.分别是Silent Not
-
php登录超时检测功能实例详解
php登录超时检测功能实例详解 前言: php登录超时问题,当用户超过一定时间没有操作页面时自动退出登录,原理是通过js进行访问判断的!代码如下(以thinkphp5.0版本为例) 1.创建登录版块控制器: <?php namespace app\manage\control; use \think\Controller; class Main extends Controller{ protected $request; public function _initialize(){ $this
-
JS图片轮播与索引变色功能实例详解
废话不多说了,直接给大家贴代码了,具体代码如下所示: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <met
-
TinyMCE汉化及本地上传图片功能实例详解
TinyMCE我就不多介绍了,这是下载地址:https://www.tinymce.com/download/ 下载下来是英文版,要汉化也很简单. 首先去网上随便下载个汉化包,然后把汉化包解压后的langs文件夹里的zh_CN.js拷到你下载的TinyMCE的langs文件夹中就行.最后在 tinymce.init中加上"language: "zh_CN","(后面会贴出代码) 本地图片上传我用到了Jquery中的uploadify和UI,所以需要引用jquery.
-
jQuery EasyUI 组件加上“清除”功能实例详解
1.背景 在使用 EasyUI 各表单组件时,尤其是使用 ComboBox(下拉列表框).DateBox(日期输入框).DateTimeBox(日期时间输入框)这三个组件时,经常有这样的需求,下拉框或日期只允许选择.不允许手动输入,这时只要在组件选项中加入 editable:false 就可以实现,但有一个问题,就是:一旦选择了,没办法清空.经过研究,可以用一个变通的解决方案:给组件加上一个"清除"按钮,当有值是,显示按钮,点击按钮可清空值,当无值是,隐藏按钮. 2.函数定义 定义JS
随机推荐
- iOS中获取系统相册中的图片实例
- 用XML和SQL 2000来管理存储过程调用
- SqlServer索引的原理与应用详解
- Fuel快速安装OpenStack图文教程
- php下巧用select语句实现mysql分页查询
- C#嵌套类的访问方法
- Android自定义实现顶部粘性下拉刷新效果
- 在不同Activity之间传递数据的四种常用方法
- 男人要处女做老婆是有科学根据的解释
- Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例
- Ruby的安装与运行
- 有关jQuery中parent()和siblings()的小问题
- 不用防火墙自动对付CC攻击防范vbs
- JavaScript控制table某列不显示的方法
- 关于Iframe父页面与子页面之间的相互调用
- Android自定义View制作仪表盘界面
- Android严苛模式StrictMode使用详解
- springboot如何获取相对路径文件夹下静态资源的方法
- Python使用tkinter模块实现推箱子游戏
- golang基础之Gocurrency并发