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 相关文章推荐
java EJB 加密与解密原理的一个例子
Jan 11 PHP
php设计模式 Template (模板模式)
Jun 26 PHP
Fine Uploader文件上传组件应用介绍
Jan 06 PHP
php中生成随机密码的自定义函数代码
Oct 21 PHP
Yii查询生成器(Query Builder)用法实例教程
Sep 04 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
Sep 12 PHP
配置php.ini实现PHP文件上传功能
Nov 27 PHP
php读取远程gzip压缩网页的方法
Dec 29 PHP
php对xml文件的增删改查操作实现方法分析
May 19 PHP
实例讲解PHP页面静态化
Feb 05 PHP
PHPUnit测试私有属性和方法功能示例
Jun 12 PHP
Laravel 框架控制器 Controller原理与用法实例分析
Apr 14 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
为什么夜间收到的中波电台比白天多
2021/03/01 无线电
PHP静态类
2006/11/25 PHP
PHP编程中的常见漏洞和代码实例
2014/08/06 PHP
php通过分类列表产生分类树数组的方法
2015/04/20 PHP
php对数组内元素进行随机调换的方法
2015/05/12 PHP
详解PHP中websocket的使用方法
2016/09/15 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
2019/05/08 PHP
21个值得收藏的Javascript技巧
2014/02/04 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
javascript制作照片墙及制作过程中出现的问题
2016/04/04 Javascript
jquery获取form表单input元素值的简单实例
2016/05/30 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
基于Phantomjs生成PDF的实现方法
2016/11/07 Javascript
学习使用jQuery表单验证插件和日历插件
2017/02/13 Javascript
js实现数组内数据的上移和下移的实例
2017/11/14 Javascript
跨域请求两种方法 jsonp和cors的实现
2018/11/11 Javascript
JavaScript学习笔记之DOM操作实例分析
2019/01/08 Javascript
vue 强制组件重新渲染(重置)的两种方案
2019/10/29 Javascript
vue中移动端调取本地的复制的文本方式
2020/07/18 Javascript
Python中文编码那些事
2014/06/25 Python
Python获取Windows或Linux主机名称通用函数分享
2014/11/22 Python
Python实现的彩票机选器实例
2015/06/17 Python
Python外星人入侵游戏编程完整版
2020/03/30 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
让Django支持Sql Server作后端数据库的方法
2018/05/29 Python
详解Python匿名函数(lambda函数)
2019/04/19 Python
Windows 下python3.8环境安装教程图文详解
2020/03/11 Python
python自动提取文本中的时间(包含中文日期)
2020/08/31 Python
快速创建python 虚拟环境
2020/11/28 Python
初三政治教学反思
2014/01/30 职场文书
对照四风自我剖析材料
2014/10/07 职场文书
2014年加油站工作总结
2014/12/04 职场文书
小公司融资,商业计划书的8切记
2019/07/15 职场文书
Python - 10行代码集2000张美女图
2021/05/23 Python
PHP中多字节字符串操作实例详解
2021/08/23 PHP
小程序实现悬浮按钮的全过程记录
2021/10/16 HTML / CSS