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图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
Dec 02 PHP
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
May 17 PHP
php后退一页表单内容保存实现方法
Jun 17 PHP
PHP系统命令函数使用分析
Jul 05 PHP
PHP goto语句简介和使用实例
Mar 11 PHP
php中获取主机名、协议及IP地址的方法
Nov 18 PHP
php实现发送微信模板消息的方法
Mar 07 PHP
php获取用户真实IP和防刷机制的实例代码
Nov 28 PHP
PHP设计模式之模板模式定义与用法详解
Dec 20 PHP
PHP一个简单的无需刷新爬虫
Jan 05 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
Sep 05 PHP
thinkphp5 redis缓存新增方法实例讲解
Mar 24 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中的加密功能
2006/10/09 PHP
PHP中ini_set和ini_get函数的用法小结
2014/02/18 PHP
ThinkPHP行为扩展Behavior应用实例详解
2014/07/22 PHP
PHP常用正则表达式集锦
2014/08/17 PHP
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
PPK 谈 JavaScript 的 this 关键字 [翻译]
2009/09/29 Javascript
JQuery上传插件Uploadify使用详解及错误处理
2010/04/27 Javascript
网页整体变灰白色(兼容各浏览器)实例
2013/04/21 Javascript
js父窗口关闭时子窗口随之关闭完美解决方案
2014/04/29 Javascript
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
2014/06/10 Javascript
基于编写jQuery的无缝滚动插件
2014/08/02 Javascript
深入理解JavaScript系列(49):Function模式(上篇)
2015/03/04 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
2015/08/21 Javascript
关注jquery技巧提高jquery技能(前端开发必学)
2015/11/02 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
EditPlus中的正则表达式 实战(4)
2016/12/15 Javascript
Angular 2父子组件数据传递之@ViewChild获取子组件详解
2017/07/04 Javascript
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
微信小程序选择图片和放大预览图片功能
2017/11/02 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
深入解析koa之中间件流程控制
2019/06/17 Javascript
深入理解基于vue-cli的webpack打包优化实践及探索
2019/10/14 Javascript
JavaScript 正则应用详解【模式、欲查、反向引用等】
2020/05/13 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
2020/09/07 Javascript
ssh批量登录并执行命令的python实现代码
2012/05/25 Python
Python实现的HMacMD5加密算法示例
2018/04/03 Python
Python工厂函数用法实例分析
2018/05/14 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
Python约瑟夫生者死者小游戏实例讲解
2021/01/04 Python
诚实守信演讲稿
2014/09/01 职场文书
广告公司文案策划岗位职责
2015/04/14 职场文书
演讲稿之我的初心我的成长
2019/08/12 职场文书
新手入门Jvm-- JVM对象创建与内存分配机制
2021/06/18 Java/Android
MySQL连接控制插件介绍
2021/09/25 MySQL