访客地图

PHP字符串处理功能整理

张成
2014/12

function getword($str,$charset='utf-8') {        
        $n = 0; $p = 0; $c = '';
        $len = strlen($str);
        $arr= array();
        if(strtolower($charset) == 'utf-8') {
               
            for($i = 0; $i < $len; $i++) {
                $c = ord($str{$i});
                if($c > 252) {
                    $p = 5;
                } elseif($c > 248) {
                    $p = 4;
                } elseif($c > 240) {
                    $p = 3; 
                } elseif($c > 224) {
                    $p = 2;
                } elseif($c > 192) {
                    $p = 1;
                } else {
                    $p = 0;
                }
                $arr[] = substr($str,$i,$p+1);
                $i += $p;
                $n++;
            }
        } else {
           // gbk计算方式  2个字符算1个长度
            for($i = 0; $i < $len; $i++) {
                $c = ord($str{$i});
                if($c > 127) {
                    $p = 1;
                } else {
                    $p = 0;
                }
                $arr[] = substr($str,$i,$p+1);
                $i += $p;
                $n++;
                   
            }      
        }
        $result = array('length'=>$n,'word'=>$arr);
        return $result;
                        
}