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生成缩略图的类代码
Oct 02 PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
Jul 17 PHP
PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
Jul 23 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
Jun 25 PHP
php常用hash加密函数
Nov 22 PHP
discuz目录文件资料汇总
Dec 30 PHP
php实现用于删除整个目录的递归函数
Mar 16 PHP
jquery+php实现导出datatables插件数据到excel的方法
Jul 06 PHP
PHP中的静态变量及static静态变量使用详解
Nov 05 PHP
PHP使用Redis替代文件存储Session的方法
Feb 15 PHP
PHP实现微信提现功能(微信商城)
Nov 21 PHP
PHP时间类完整代码实例
Feb 26 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+oracle 分页类
2006/10/09 PHP
介绍一些PHP判断变量的函数
2012/04/24 PHP
分享一个PHP数据流应用的简单例子
2012/06/01 PHP
一个PHP并发访问实例代码
2012/09/06 PHP
php绘图之在图片上写中文和英文的方法
2015/01/24 PHP
php判断访问IP的方法
2015/06/19 PHP
php获取错误信息的方法
2015/07/17 PHP
PHP中实现中文字串截取无乱码的解决方法
2018/05/29 PHP
javascript字典探测用户名工具
2006/10/05 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
2013/07/07 Javascript
nodejs实现遍历文件夹并统计文件大小
2015/05/28 NodeJs
jQuery实现鼠标划过添加和删除class的方法
2015/06/26 Javascript
实例详解Nodejs 保存 payload 发送过来的文件
2016/01/14 NodeJs
js 判断一组日期是否是连续的简单实例
2016/07/11 Javascript
JS使用正则表达式过滤多个词语并替换为相同长度星号的方法
2016/08/03 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
2016/09/04 Javascript
微信小程序加载更多 点击查看更多
2016/11/29 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
使用JavaScript实现点击循环切换图片效果
2017/09/03 Javascript
在vue中通过axios异步使用echarts的方法
2018/01/13 Javascript
微信小程序input框中加入小图标的实现方法
2018/06/19 Javascript
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
Python实现简单文本字符串处理的方法
2018/01/22 Python
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
2018/08/02 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
CSS3实现超慢速移动动画效果非常流畅无卡顿
2014/06/15 HTML / CSS
canvas简单连线动画的实现代码
2020/02/04 HTML / CSS
我们是伦敦女孩:WalG
2018/01/08 全球购物
绝对经典成功的大学生推荐信
2013/11/08 职场文书
党政领导班子民主生活会整改措施
2014/09/18 职场文书
2014派出所所长群众路线对照检查材料思想汇报
2014/09/18 职场文书
银行竞聘报告范文
2014/11/06 职场文书
公司员工宿舍管理制度
2015/08/07 职场文书
Nginx配置Https安全认证的实现
2021/05/26 Servers
使用GO语言实现Mysql数据库CURD的简单示例
2021/08/07 Golang