/**
* 计算字符串的长度(汉字按照两个字符计算)
*
* @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);
}
}这段代码中intval($length / 3) * 2为什么这样写不是直接可以intval($length / 2)假如
$str="abc中abc";(长度是7)intval($length / 3) * 2这样写的话就得出是6(事实上是7)
function str_len($str)
{
$length = strlen(preg_replace('/[\x80-\xff]/', 'x', $str));
return $length;
}
//这样计算最好
$str = "abc中国人,abc";
echo str_len($str); //14