今天无意间看ECSHOP的源码,看到获取中文字符串的长度的代码,感觉这个思路很不错。
/**
* 计算字符串的长度(汉字按照两个字符计算)
*
* @param string $str 字符串
*
* @return int
*/
function str_len($str)
{
$length = strlen(preg_replace('/[\x00-\x7F]/', '', $str));
if ($length)
{
return strlen($str) - $length + intval($length / 3) * 2;
}
else
{
return strlen($str);
}
}