php源码分析之DZX1.5字符串截断函数cutstr用法
本文实例讲述了php源码分析之DZX1.5字符串截断函数cutstr用法。分享给大家供大家参考。具体分析如下:
<?php /** *函数来源DZX1.5,文件所在/source/function/function_core.php */ define('CHARSET','UTF-8'); functioncutstr($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'; echocutstr($string,15); /*Endofphp*/
运行结果如下:
测试数据库ablci1020...
希望本文所述对大家的php程序设计有所帮助。