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在字符串中查找另一个字符串
Nov 19 PHP
php记录日志的实现代码
Aug 08 PHP
PHP面向对象学习笔记之一 基础概念
Oct 06 PHP
php获取新浪微博数据API实例
Nov 12 PHP
destoon实现资讯信息前面调用它所属分类的方法
Jul 15 PHP
php实现无限级分类
Dec 24 PHP
使用xampp搭建运行php虚拟主机的详细步骤
Oct 21 PHP
php实现简单爬虫的开发
Mar 28 PHP
php similar_text()函数的定义和用法
May 12 PHP
PHP7.1新功能之Nullable Type用法分析
Sep 26 PHP
PHP面向对象程序设计之对象生成方法详解
Dec 02 PHP
Laravel 实现数据软删除功能
Aug 21 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 CURL获取返回值的方法
2014/05/04 PHP
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
2014/05/06 PHP
CI框架入门示例之数据库取数据完整实现方法
2014/11/05 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
2016/11/20 PHP
PHP串行化与反串行化实例分析
2016/12/27 PHP
thinkphp分页集成实例
2017/07/24 PHP
Yii框架通过请求组件处理get,post请求的方法分析
2019/09/03 PHP
jQuery获取某天的农历日期并判断是否除夕或新年的方法
2016/03/01 Javascript
jquery+css实现侧边导航栏效果
2017/06/12 jQuery
基于jQuery实现无缝轮播与左右点击效果
2018/05/13 jQuery
最后说说Vue2 SSR 的 Cookies 问题
2018/05/25 Javascript
layui 优化button按钮和弹出框的方法
2018/08/15 Javascript
React Native开发封装Toast与加载Loading组件示例
2018/09/08 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
2019/05/16 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
2019/12/06 Javascript
[01:10:57]Liquid vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python实现字符串和日期相互转换的方法
2015/05/13 Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
2017/07/20 Python
对python中return和print的一些理解
2017/08/18 Python
浅谈numpy数组的几种排序方式
2017/12/15 Python
Python基于最小二乘法实现曲线拟合示例
2018/06/14 Python
对PyTorch torch.stack的实例讲解
2018/07/30 Python
python利用百度AI实现文字识别功能
2018/11/27 Python
python求最大值最小值方法总结
2019/06/25 Python
Python常用模块sys,os,time,random功能与用法实例分析
2020/01/07 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
Python使用Pygame绘制时钟
2020/11/29 Python
css3 伪元素和伪类选择器详解
2014/09/04 HTML / CSS
水果花束:Fruit Bouquets
2017/12/20 全球购物
八项规定对照检查材料
2014/08/31 职场文书
企业法人授权委托书
2014/09/25 职场文书
个人先进事迹材料
2014/12/29 职场文书
幼儿园中班教育随笔
2015/08/14 职场文书
Python基础之hashlib模块详解
2021/05/06 Python
Python 批量下载阴阳师网站壁纸
2021/05/19 Python
Java的Object类的九种方法
2022/04/13 Java/Android