加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php源码分析之DZX1.5字符串截断函数cutstr使用方式

发布时间:2023-04-03 12:59:41 所属栏目:PHP教程 来源:
导读:这篇文章主要介绍了php源码分析之DZX1.5字符串截断函数cutstr用法,实例分析了DZX1.5中cutstr函数实现字符串截取的使用技巧,需要的朋友可以参考下。本文实例讲述了php源码分析之DZX1.5字符串截断函数cutstr用法,分享

这篇文章主要介绍了php源码分析之DZX1.5字符串截断函数cutstr用法,实例分析了DZX1.5中cutstr函数实现字符串截取的使用技巧,需要的朋友可以参考下。

本文实例讲述了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...

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!