php自定义截取中文字符串-utf8版


Posted in PHP onFebruary 27, 2017

先说明:网上目前有很多这个问题的代码,但是很多都是复制粘贴,没有自己实践,而且代码有逻辑问题,下面的代码由我自己编写。

话不多说

/**
   * 该函数是对于utf8编码
   * @author 2582308253@qq.com
   * @param string $str
   * @param int $start
   * @param int $length
   * @return string
   * @copyright 2017年2月27日下午1:46:10
   */
  function gbsubstr2($str, $start, $length) {
    $length = abs($length);
    $strLen = strlen($str);
    $len = $start + $length;
    $newStr = '';
    for($i = $start; $i < $len && $i < $strLen; $i++) {
      if(ord(substr($str, $i, 1)) > 0xa0) {
        //utf8编码中一个汉字是占据3个字节的,对于其他的编码的字符串,中文占据的字节各有不同,自己需要去修改这个数a
        $newStr .= substr($str, $i, 3);//此处a=3;
        $i+=2;
        $len += 2; //截取了三个字节之后,截取字符串的终止偏移量也要随着每次汉字的截取增加a-1;
      } else {
        $newStr .= substr($str, $i, 1);
      }
    }
    return $newStr;
  }

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

PHP 相关文章推荐
一个阿拉伯数字转中文数字的函数
Oct 09 PHP
Linux下实现PHP多进程的方法分享
Aug 16 PHP
你可能不知道PHP get_meta_tags()函数
May 12 PHP
PHP实现采集中国天气网未来7天天气
Oct 15 PHP
PHP获取服务器端信息的方法
Nov 28 PHP
php实现可逆加密的方法
Aug 11 PHP
php防止CC攻击代码 php防止网页频繁刷新
Dec 21 PHP
PHP结合Jquery和ajax实现瀑布流特效
Jan 07 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
Mar 04 PHP
php并发加锁示例
Oct 17 PHP
Laravel源码解析之路由的使用和示例详解
Sep 27 PHP
PHP+Oracle本地开发环境搭建方法详解
Apr 01 PHP
PHP读取XML格式文件的方法总结
Feb 27 #PHP
PHP批量修改文件名称的方法分析
Feb 27 #PHP
php基于PDO实现功能强大的MYSQL封装类实例
Feb 27 #PHP
php实现通过soap调用.Net的WebService asmx文件
Feb 27 #PHP
PHP 中使用ajax时一些常见错误总结整理
Feb 27 #PHP
PHP/HTML混写的四种方式总结
Feb 27 #PHP
老生常谈文本文件和二进制文件的区别
Feb 27 #PHP
You might like
php中获得视频时间总长度的另一种方法
2011/09/15 PHP
PHP 万年历实现代码
2012/10/18 PHP
分享10段PHP常用代码
2015/11/11 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
用js实现的仿sohu博客更换页面风格(简单版)
2007/03/22 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
2014/02/12 Javascript
Javascript之Number对象介绍
2016/06/07 Javascript
Javascript使用function创建类的两种方法(推荐)
2016/11/19 Javascript
jQuery实现删除li节点的方法
2016/12/06 Javascript
JS中parseInt()和map()用法分析
2016/12/16 Javascript
配置nodejs环境的方法
2017/05/13 NodeJs
jquery处理checkbox(复选框)是否被选中实例代码
2017/06/12 jQuery
js实现拖拽上传图片功能
2017/08/01 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
vue.js响应式原理解析与实现
2020/06/22 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
vue实现数据控制视图的原理解析
2020/01/07 Javascript
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
python学习笔记之调用eval函数出现invalid syntax错误问题
2015/10/18 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
Python使用指定端口进行http请求的例子
2019/07/25 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
海蓝之谜英国官网:La Mer英国
2020/01/15 全球购物
Fanatics官网:运动服装、球衣、运动装备
2020/10/12 全球购物
总经理驾驶员岗位职责
2013/12/04 职场文书
普通大学毕业生自荐信范文
2014/02/23 职场文书
大学第二课堂活动总结
2014/07/08 职场文书
给老婆的保证书
2015/01/16 职场文书
500字小学生检讨书
2015/02/19 职场文书
实习单位意见
2015/06/04 职场文书
贫困证明书范文
2015/06/16 职场文书
创业计划书之韩国烧烤店
2019/09/19 职场文书
python 调用js的四种方式
2021/04/11 Python
小程序与后端Java接口交互实现HelloWorld入门
2021/07/09 Java/Android
Python+Selenium实现读取网易邮箱验证码
2022/03/13 Python