首页 >php教程 >PHP源码 >PHP截取字符串(加强版,兼容UTF8和GBK)

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

PHP中文网
PHP中文网原创
2016-05-25 17:09:25999浏览


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('&', '"', ' $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 = $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);
}

                   

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn