php源码分析之DZX1.5字符串截断函数cutstr用法


Posted in PHP onJune 17, 2015

本文实例讲述了php源码分析之DZX1.5字符串截断函数cutstr用法。分享给大家供大家参考。具体分析如下:

<?php 
/**
 * 函数来源DZX1.5,文件所在 /source/function/function_core.php
 */
define('CHARSET','UTF-8');
function cutstr($string, $length, $dot="...") {
  if(strlen($string)<=$length) {
    return $string;
  }
  if(strtolower(CHARSET) == "utf-8") {
    $n = $tn = $noc = 0;
    while($n < strlen($string)) {
      $t = ord($string[$n]);
      if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
        $tn = 1; $n++; $noc++;
      } elseif(194 <= $t && $t <= 223) {
        $tn = 2; $n += 2; $noc += 2;
      } elseif(224 <= $t && $t <= 239) {
        $tn = 3; $n += 3; $noc += 2;
      } elseif(240 <= $t && $t <= 247) {
        $tn = 4; $n += 4; $noc += 2;
      } elseif(248 <= $t && $t <= 251) {
        $tn = 5; $n += 5; $noc += 2;
      } elseif($t == 252 || $t == 253) {
        $tn = 6; $n += 6; $noc += 2;
      } else {
        $n++;
      }
      if($noc >= $length) {
        break;
      }
    }
    if($noc > $length) {
      $n -= $tn;
    }
    $strcut = substr($string, 0, $n);
  } else {
    for($i = 0; $i < $length; $i++) {
      $strcut .= ord($string[$i])>127 ? $string[$i].$string[++$i] : $string[$i];
    }
  }
  $pos = strrpos($strcut, chr(1));
  if($pos !== false) {
    $strcut = substr($strcut,0,$pos);
  }
  return $strcut.$dot;
}
$string = '测试数据库ablci102020@(#)!)!测试劳动力ddk';
echo cutstr($string,15);
/*End of php*/

运行结果如下:

测试数据库ablci1020...

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP中通过语义URL防止网站被攻击的方法分享
Sep 08 PHP
PHP抽象类 介绍
Jun 13 PHP
php检测文件编码的方法示例
Apr 25 PHP
微信公众平台天气预报功能开发
Jul 06 PHP
php魔术变量用法实例详解
Nov 13 PHP
PHP中遇到的时区问题解决方法
Jul 23 PHP
php根据日期或时间戳获取星座信息和生肖等信息
Oct 20 PHP
php发送短信验证码完成注册功能
Nov 24 PHP
Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析
Mar 21 PHP
详解php中空字符串和0之间的关系
Oct 23 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
Dec 15 PHP
PHP对象相关知识总结
Apr 09 PHP
php源码分析之DZX1.5加密解密函数authcode用法
Jun 17 #PHP
php源码分析之DZX1.5随机数函数random用法
Jun 17 #PHP
php正则替换处理HTML页面的方法
Jun 17 #PHP
PHP排序算法类实例
Jun 17 #PHP
php准确获取文件MIME类型的方法
Jun 17 #PHP
php操作MongoDB类实例
Jun 17 #PHP
PHP实现的购物车类实例
Jun 17 #PHP
You might like
分享php分页的功能模块
2015/06/16 PHP
php实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
PHP实现数组和对象的相互转换操作示例
2019/03/20 PHP
javascript void(0)的妙用
2009/10/21 Javascript
拉动滚动条加载数据的jquery代码
2012/05/03 Javascript
早该知道的7个JavaScript技巧
2013/03/27 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
js canvas实现擦除动画
2016/07/16 Javascript
BootStrap CSS全局样式和表格样式源码解析
2017/01/20 Javascript
js实现瀑布流效果(自动生成新的内容)
2017/03/16 Javascript
微信小程序实现tab和swiper切换结合效果
2020/07/17 Javascript
在 Linux/Unix 中不重启 Vim 而重新加载 .vimrc 文件的流程
2018/03/21 Javascript
vue路由前进后退动画效果的实现代码
2018/12/10 Javascript
手把手教你 CKEDITOR 4 实现Dialog 内嵌 IFrame操作详解
2019/06/18 Javascript
js实现点赞按钮功能的实例代码
2020/03/06 Javascript
简单了解JavaScript arguement原理及作用
2020/05/28 Javascript
Jquery 获取相同NAME 或者id删除行操作
2020/08/24 jQuery
详解python3中socket套接字的编码问题解决
2017/07/01 Python
深入分析python数据挖掘 Json结构分析
2018/04/21 Python
使用python3实现操作串口详解
2019/01/01 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2020/09/04 Python
python元组拆包实现方法
2021/02/28 Python
基于PyInstaller各参数的含义说明
2021/03/04 Python
欧洲著名的珠宝和手表网上商城:uhrcenter
2017/04/10 全球购物
英国快时尚女装购物网站:PrettyLittleThing
2018/08/15 全球购物
班主任对学生的评语
2014/04/26 职场文书
教师对学生的评语
2014/04/28 职场文书
考试保密承诺书
2014/08/30 职场文书
2014迎国庆标语大全
2014/09/19 职场文书
2014县委书记四风对照检查材料思想汇报
2014/09/21 职场文书
同学会邀请函模板
2015/01/30 职场文书
2016年三八节红领巾广播稿
2015/12/17 职场文书
2019奶茶店创业计划书范本,值得你借鉴
2019/08/14 职场文书
浅谈golang package中init方法的多处定义及运行顺序问题
2021/05/06 Golang