1. <button id="qzuct"><tr id="qzuct"></tr></button>
          1. <rp id="qzuct"><object id="qzuct"><input id="qzuct"></input></object></rp>

            <rp id="qzuct"></rp>
            1. <th id="qzuct"><pre id="qzuct"></pre></th>

              您现在的位置:首页 > 开源代码 > PHP截取字符串(加强版,兼容GBK和UTF8)

              PHP截取字符串(加强版,兼容GBK和UTF8)

              function htmlencode($string) {
              	if(is_array($string)) {
              		foreach($string as $key => $val) {
              			$string[$key] = htmlencode($val);
              		}
              	} else {
              		$string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\\1', str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string));
              	}
              	return $string;
              }
              
              function cutStr($string, $length = 0, $dot = '') {
              	$string = strip_tags($string);
              	$string = trim($string);
              	$string = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string);
              	$strlen = strlen(phpcharset($string, 'GBK'));
              	$charset = mb_detect_encoding($string, array('ASCII', 'UTF-8', 'GBK', 'GB2312', 'BIG5'));
              	if($length && ($strlen > $length)) {
              		$wordscut = '';
              		if(strtolower($charset) == 'utf-8') {
              			$n = 0;
              			$tn = 0;
              			$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;
              			}
              			$wordscut = substr($string, 0, $n);
              		} else {
              			for($i = 0; $i < $length - 1; $i++) {
              				if(ord($string[$i]) > 127) {
              					$wordscut .= $string[$i].$string[$i + 1];
              					$i++;
              				} else {
              					$wordscut .= $string[$i];
              				}
              			}
              		}
              		$wordscut .= $dot;
              		$string = $wordscut;
              	}
              	return htmlencode($string);
              }
              相关标签:  PHP , 截取 , 字符串

              发布时间: 2012-10-30 16:32:21

              浏览次数: 5510

              三级4级全黄60分钟_gay欧美男男gv片在线观看_亚洲成av人在线观看网址_清纯女仆装自慰流白汁