Discuz dstrlen函数 针对uft-8进行特殊处理的strlen
/**
* 针对uft-8进行特殊处理的strlen
* @param string $str
* @return int
*/
function dstrlen($str) {
if(strtolower(CHARSET) != 'utf-8') {
return strlen($str);
}
$count = 0;
for($i = 0; $i < strlen($str); $i++){
$value = ord($str[$i]);
if($value > 127) {
$count++;
if($value >= 192 && $value <= 223) $i++;
elseif($value >= 224 && $value <= 239) $i = $i + 2;
elseif($value >= 240 && $value <= 247) $i = $i + 3;
}
$count++;
}
return $count;
}
页:
[1]