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字符串函数的总结分析
Jun 05 PHP
php inc文件使用的风险和注意事项
Nov 12 PHP
用PHP解决的一个栈的面试题
Jul 02 PHP
PHP exif扩展方法开启详解
Jul 28 PHP
PHP中feof()函数实例测试
Aug 23 PHP
php中JSON的使用与转换
Jan 14 PHP
php上传图片客户端和服务器端实现方法
Mar 30 PHP
php删除数组中重复元素的方法
Dec 22 PHP
PHP用continue跳过本次循环中剩余代码的注意点
Jun 27 PHP
php实现的统计字数函数定义与使用示例
Jul 26 PHP
php使用fullcalendar日历插件详解
Mar 06 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
Aug 27 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
三国漫画《火凤燎原》宣布动画化PV放出 预计2020年播出
2020/03/08 国漫
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
PHP实现通过strace定位故障原因的方法
2018/04/29 PHP
php生成静态页面并实现预览功能
2019/06/27 PHP
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
document.createElement()用法及注意事项(ff下不兼容)
2013/03/13 Javascript
jquery在IE、FF浏览器的差别详细探讨
2013/04/28 Javascript
JS实现div居中示例
2014/04/17 Javascript
nodejs URL模块操作URL相关方法介绍
2015/03/03 NodeJs
nodejs中实现阻塞实例
2015/03/24 NodeJs
js实现兼容IE、Firefox的图片缩放代码
2015/12/08 Javascript
JS锚点的设置与使用方法
2016/09/05 Javascript
javascript数据类型详解
2017/02/07 Javascript
详解在vue-cli项目中安装node-sass
2017/06/21 Javascript
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
javaScript强制保留两位小数的输入数校验和小数保留问题
2018/05/09 Javascript
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
2019/03/07 Javascript
对layui中的onevent 和event的使用详解
2019/09/06 Javascript
three.js着色器材质的内置变量示例详解
2020/08/16 Javascript
Vue elementui字体图标显示问题解决方案
2020/08/18 Javascript
[04:01]2014DOTA2国际邀请赛 TITAN告别Ohaiyo期望明年再战
2014/07/15 DOTA
Python比较2个时间大小的实现方法
2018/04/10 Python
使用Template格式化Python字符串的方法
2019/01/22 Python
Pycharm如何打断点的方法步骤
2019/06/13 Python
Python函数参数分类原理详解
2020/05/28 Python
俄罗斯街头服装品牌:Black Star Wear
2017/03/01 全球购物
为您搜罗全球潮流時尚品牌:HBX
2019/12/04 全球购物
iHerb俄罗斯:维生素、补品和天然产品
2020/07/09 全球购物
中科前程Java笔试题
2016/11/20 面试题
工程部主管岗位职责
2013/11/17 职场文书
党员教师一句话承诺
2014/05/30 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
民警忠诚教育心得体会
2016/01/23 职场文书
无线电知识基础入门篇
2022/02/18 无线电