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生成xml简单实例代码
Dec 16 PHP
一些需要禁用的PHP危险函数(disable_functions)
Feb 23 PHP
基于CakePHP实现的简单博客系统实例
Jun 28 PHP
PHP缓冲区用法总结
Feb 14 PHP
php实现水印文字和缩略图的方法示例
Dec 29 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
Aug 17 PHP
PHP有序表查找之插值查找算法示例
Feb 10 PHP
PHP 爬取网页的主要方法
Jul 13 PHP
php获取用户真实IP和防刷机制的实例代码
Nov 28 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
Sep 11 PHP
PHP中类与对象功能、用法实例解读
Mar 27 PHP
实例化php类时传参的方法分析
Jun 05 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简单系统查询模块代码打包下载
2008/06/07 PHP
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
2009/06/08 PHP
php实现删除空目录的方法
2015/03/16 PHP
PHP中is_file()函数使用指南
2015/05/08 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
2016/10/08 PHP
javascript 面向对象编程基础:封装
2009/08/21 Javascript
jQuery toggle()设置CSS样式
2009/11/05 Javascript
JavaScript中SQL语句的应用实现
2010/05/04 Javascript
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
2011/06/27 Javascript
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
给jQuery方法添加回调函数一款插件的应用
2013/01/21 Javascript
Jquery操作下拉框(DropDownList)实现取值赋值
2013/08/13 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
2014/05/27 Javascript
javascript运动效果实例总结(放大缩小、滑动淡入、滚动)
2016/01/08 Javascript
JS去除空格和换行的正则表达式(推荐)
2016/06/14 Javascript
js删除局部变量的实现方法
2016/06/25 Javascript
微信小程序 progress组件详解及实例代码
2016/10/25 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
详解js中常规日期格式处理、月历渲染和倒计时函数
2016/12/28 Javascript
javascript自定义事件功能与用法实例分析
2017/11/08 Javascript
Javascript删除数组里的某个元素
2019/02/28 Javascript
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
python文件操作之目录遍历实例分析
2015/05/20 Python
使用Python绘制图表大全总结
2017/02/11 Python
python 将数据保存为excel的xls格式(实例讲解)
2018/05/03 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
2020/03/06 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
2020/09/29 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
python中slice参数过长的处理方法及实例
2020/12/15 Python
四好少年事迹材料
2014/01/12 职场文书
新春联欢会主持词
2014/03/24 职场文书
禁止高声喧哗的标语
2014/06/11 职场文书
人事局接收函
2015/01/30 职场文书
英语导游词
2015/02/13 职场文书
图文详解Nginx版本平滑升级方案
2021/09/15 Servers
浅谈Redis缓冲区机制
2022/06/05 Redis