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连接access数据库
Mar 27 PHP
PHP HTML代码串截取代码
Dec 29 PHP
php 随机记录mysql rand()造成CPU 100%的解决办法
May 18 PHP
PHP如何解决网站大流量与高并发的问题
Jun 25 PHP
php实现求相对时间函数
Jun 15 PHP
Yii操作数据库实现动态获取表名的方法
Mar 29 PHP
Yii中CGridView禁止列排序的设置方法
Jul 12 PHP
PHP中的self关键字详解
Jun 23 PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
Oct 11 PHP
Laravel 实现在Blade模版中使用全局变量代替路径的例子
Oct 22 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
Dec 01 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
May 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
PHP5中MVC结构学习
2006/10/09 PHP
php UBB 解析实现代码
2011/11/27 PHP
php并发对MYSQL造成压力的解决方法
2013/02/21 PHP
php验证手机号码
2015/11/11 PHP
php图片添加文字水印实现代码
2016/03/15 PHP
Draggable Elements 元素拖拽功能实现代码
2011/03/30 Javascript
js 固定悬浮效果实现思路代码
2013/08/02 Javascript
Javascript让DEDECMS告别手写Tag
2014/09/01 Javascript
jQuery实现3D文字特效的方法
2015/03/10 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
2016/05/24 Javascript
AngularJS 自定义指令详解及示例代码
2016/08/17 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
2017/05/03 Javascript
vue单页应用加百度统计代码(亲测有效)
2018/01/31 Javascript
node+koa2+mysql+bootstrap搭建一个前端论坛
2018/05/06 Javascript
Vue表单输入绑定的示例代码
2018/11/01 Javascript
微信小程序使用websocket通讯的demo,含前后端代码,亲测可用
2019/05/22 Javascript
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python中的编码知识整理汇总
2016/01/26 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
Python配置文件处理的方法教程
2019/08/29 Python
python爬虫-模拟微博登录功能
2019/09/12 Python
css3实现波纹特效、H5实现动态波浪效果
2018/01/31 HTML / CSS
html5是什么_动力节点Java学院整理
2017/07/07 HTML / CSS
基于HTML5 WebGL的3D机房的示例
2018/03/16 HTML / CSS
悦木之源美国官网:Origins美国
2016/08/01 全球购物
关于礼仪的演讲稿
2014/01/04 职场文书
财务总经理岗位职责
2014/02/16 职场文书
网络编辑职责
2014/03/01 职场文书
食品安全工作实施方案
2014/03/26 职场文书
党员服务承诺书
2014/05/28 职场文书
交通事故和解协议书
2014/09/25 职场文书
2015年售票员工作总结
2015/04/29 职场文书
阿甘正传观后感
2015/06/01 职场文书
《秋天的怀念》教学反思
2016/02/17 职场文书
推荐六本经典文学奖书籍:此生必读
2019/08/22 职场文书