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 相关文章推荐
php xfocus防注入资料
Apr 27 PHP
php 学习资料零碎东西
Dec 04 PHP
PHP缓存技术的多种方法小结
Aug 14 PHP
PHP5多态性与动态绑定介绍
Apr 03 PHP
使用Appcan客户端自动更新PHP版本号(全)
Jul 31 PHP
php给图片添加文字水印方法汇总
Aug 27 PHP
PHP微信开发之模板消息回复
Jun 24 PHP
php项目开发中用到的快速排序算法分析
Jun 25 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
May 29 PHP
php实现微信企业号支付个人的方法详解
Jul 26 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 PHP
php数值计算num类简单操作示例
May 15 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
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
2014/02/24 PHP
PHP下载远程图片并保存到本地方法总结
2016/01/22 PHP
PHP实现的函数重载功能示例
2018/08/03 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
2007/03/12 Javascript
javascript整除实现代码
2010/11/23 Javascript
Jquery之Bind方法参数传递与接收的三种方法
2014/06/24 Javascript
javascript动态控制服务器控件实例
2014/09/05 Javascript
Jquery ajax 同步阻塞引起的UI线程阻塞问题
2015/11/17 Javascript
JavaScript中offsetWidth的bug及解决方法
2017/05/17 Javascript
Javascript防止图片拉伸的自适应处理方法
2017/12/26 Javascript
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
jQuery实现动态显示select下拉列表数据的方法
2018/02/05 jQuery
elementUI select组件value值注意事项详解
2019/05/29 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
Vue页面刷新记住页面状态的实现
2019/12/27 Javascript
推荐11个实用Python库
2015/01/23 Python
python显示生日是星期几的方法
2015/05/27 Python
Python使用pyyaml模块处理yaml数据
2020/04/14 Python
python实现登录与注册系统
2020/11/30 Python
将不规则的Python多维数组拉平到一维的方法实现
2021/01/11 Python
aden + anais官方网站:婴儿襁褓、毯子、尿布和服装
2017/06/21 全球购物
护理职业生涯规划书
2014/01/24 职场文书
安全标准化汇报材料
2014/02/03 职场文书
学生周末长期请假条
2014/02/15 职场文书
基层党员对照检查材料
2014/09/24 职场文书
2014党的群众路线教育实践活动总结报告
2014/10/31 职场文书
工作经历证明书范文
2014/11/02 职场文书
旷工检讨书1000字
2015/01/01 职场文书
自主招生推荐信怎么写
2015/03/26 职场文书
2015年出纳年终工作总结
2015/05/14 职场文书
关于职业道德的心得体会
2016/01/18 职场文书
超级实用!五步法则,教你写好年终工作总结
2019/12/05 职场文书
k-means & DBSCAN 总结
2021/04/27 Python
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL
SQL Server中的逻辑函数介绍
2022/05/25 SQL Server