用PHP统计字符串长度

用PHP统计字符串长度,第1张

PHP 计算字符串长度代码示例如下,具体逻辑在代码中。

<php

//统计字符串长度,适用中文,字母,数字混编

function get_strlength($str) {

    //强字符串统一转换为utf-8格式

    $encode = mb_detect_encoding( $str, array('ASCII','UTF-8','GB2312','GBK'));

    if (!$encode =='UTF-8'){

        $str = iconv('UTF-8',$encode,$str);

    }

    //初始化字符串长度    

    $count = 0;

    

    //循环统计

    for($i = 0; $i < strlen($str); $i++){

        //获取字符串首字母对应的ASCII值

        $value = ord($str[$i]);

        

        if($value > 127) {

            $count++;

            if($value >= 192 && $value <= 223){

                $i++;

            }elseif($value >= 224 && $value <= 239){

                $i = $i + 2;

            }elseif($value >= 240 && $value <= 247){

                $i = $i + 3;

            }else{

                die('字符串异常!!');

            } 

        }

        $count++;

    }

    return $count;

}

//测试

echo get_strlength("中国人2015年的gdp为:6666");

//25

>

第一种 php中文正则匹配 相对简单第二种 strlen 计算字符串长度 (中文长度算3个) mb_strlen 计算字符串长度 (中文长度算1个) 进行比较中文字符串截取(mb_substr)和获取中文字符串字数获取中文长度:mb_strlen()php 判断一个字符是不是中文

varchar存储规则:

40版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节)

50版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节

Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同。

mb_substr("字符串",开始索引(int),结束索引(int),“utf-8”)

按照上面的写就是了

如果用substr来写的话 utf-8的格式一个中文占3个长度gbk和gb2312一个中文占2个长度

而mb_substr来写的话 不管什么格式 只要是占一个位置 都是算作一个长度

但是用mb_substr必须注意几点

在phpini中 就是php的配置文件中必须开启mb_substr这个符号 就是把前面份额分号给去掉

还有就是后面必须写上你的编码格式如“utf-8”或者gb2312之类的

如果你想用这个mb_substr的话 并且那个字符串中还有英文的话那是绝对会出错的

至于写的话 楼主自己写一下吧 查一下文档不久OK了吗 还要别人写出来 这点自学能力都没有

preg_match_all函数用来进行正在表达式匹配的,你的语句中是把$str拆分为字符,存放在$match数组里面,你在语句中增加下来的语句可以明白其功能:

print_r($match);

此函数的详细解释见官方资料:

>

function strLength($str,$charset='utf-8'){

if($charset=='utf-8') $str = iconv('utf-8','gb2312',$str);

$num = strlen($str);

$cnNum = 0;

for($i=0;$i<$num;$i++){

if(ord(substr($str,$i+1,1))>127){

$cnNum++;

$i++;

}

}

$enNum = $num-($cnNum2);

$number = ($enNum/2)+$cnNum;

return ceil($number);

}

测试:

$temp='我的我的我的我的1234cedede';

echo(strLength($temp,'gb2312'));

以上就是关于用PHP统计字符串长度全部的内容,包括:用PHP统计字符串长度、php 判断一个字符是不是中文、php中mysql汉字内容字段长度的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9797377.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存