巧妙计算中英文混合的长度问题

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);
    }
}

 

 

 

思想:首先替换字符串中的汉字,计算非汉字状态下的字符的长度,

         2.总长度-非汉字状态下的字符长度=汉字的长度,

         3.两者相加

你可能感兴趣的:(function)