欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

php 字符串长度

shiping1 的头像
1)在utf8的情况下 根据参数 ,中文算一个 英文算一个     或者一个中文算两个,英文算一个
header('Content-type:text/html;charset=utf-8');
/**
* 可以统计中文字符串长度的函数
* @param $str 要计算长度的字符串
* @param $type 计算长度类型,
* 0(默认)表示一个中文算一个字符,1表示一个中文算两个字符(当参数为1时,有点问题)
* 在utf-8的编码下 长度 还是12,就算没mb_strlen这个函数,长度还是12
* 但是在gbk的编码下 长度竟然为0 ,反正 这个函数在gbk编辑情况下(且mb_strlen函数不存在的情况下)慎用
* gbk情况下的这种函数,见 http://shipingzhong.cn/node/553
*/
function abslength($str)
{
    if(empty($str)){
        return 0;
    }
    if(function_exists('mb_strlen')){
        return mb_strlen($str,'utf-8');
    }
    else {
        preg_match_all("/./u", $str, $ar);
        return count($ar[0]);
    }
}
$str = '我们都是中国人啊,ye!';
$len = abslength($str);
var_dump($len);  //return 12
$arr=array(0=>'1');
$len = abslength($str,$arr);
echo '<br />'.$len//return 22  //因为有mb_strlen 函数  return 4(如果没有mb_strlen的话 那么中文算2, 英文算1)
(它这里的代码是有点问题,我改过代码,还是有问题,总而言之,第二个参数不起作用,)
 
 
 
 
 
普通分类: