Home >php教程 >PHP源码 >DZX1.5字符串截断函数cutstr分享

DZX1.5字符串截断函数cutstr分享

PHP中文网
PHP中文网Original
2016-05-25 17:13:381263browse

php代码

<?php 
/**
 * 函数来源DZX1.5,文件所在 /source/function/function_core.php
 */
define(&#39;CHARSET&#39;,&#39;UTF-8&#39;);

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 = $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 = &#39;测试数据库ablci102020@(#)!)!测试劳动力ddk&#39;;
echo cutstr($string,15);
/*End of php*/

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:XPath对XML文件查找及修改Next article:标签构建1