php如何取得中文和en文混合的长度的讨论

转自:http://bbs.csdn.net/topics/340032440

$s = '如何用php准确统计中英文字数呢';
echo iconv_strlen($s, 'gbk'); //out:16
 
$s = iconv('gbk', 'utf-8', $s);
echo iconv_strlen($s, 'utf-8'); //out:16
 
mb_srting 函数库也有相应的函数
/**
 * UTF-8编码情况下 *
 * 计算字符串的长度 *
 * @param   string      $str        字符串
 *
 * @return  array
 */
function strLength($str)
{
    $length = strlen(preg_replace('/[\x00-\x7F]/', '', $str));
 
    $arr['en'] = strlen($str) - $length;
    $arr['cn'] = intval($length / 3);//编码GBK,除以2
     
    return $arr;
}


你可能感兴趣的:(php如何取得中文和en文混合的长度的讨论)