首页 > php开发 > php 统计计算中文汉字字数代码

php 统计计算中文汉字字数代码

本文章来给大家介绍一些常用见的php 统计计算中文汉字字数代码,有需要了解的朋友可进入参考.

用ASCII码判断,代码如下:

<?php
$str = "abcdefg中华人民共和国中国人民解放军中国共产党中国人民";
$num = strlen($str); //$num字串长度。
echo $num . "<br>";
for ($i = 0; $i < $num; $i++) if (ord(substr($str, $i, 1)) > 0xa0) $j++;
echo $j / 2; //$j/2 汉字数。
?>

应该这样剥除所有字母数字和标点,空格,代码如下:

<?php
$testStr = '我没有告诉你,你就千万不要乱guess, 这样可不good!';
$testStr = eregi_replace("[[:alnum:]]|[[:punct:]]|[[:space:]]", '', $testStr);
echo ($testStr);
echo ('字符串中所有中文字数为:' . mb_strlen($testStr));
?>

#计算中英文混合字符串的长度,代码如下:

<?php
function ccStrLen($str) {
    $ccLen = 0;
    $ascLen = strlen($str);
    $ind = 0;
    $hasCC = ereg("[xA1-xFE]", $str); //判断是否有汉字
    $hasAsc = ereg("[x01-xA0]", $str); //判断是否有ASCII字符
    if ($hasCC && !$hasAsc) //只有汉字的情况
    return strlen($str) / 2;
    if (!$hasCC && $hasAsc) //只有Ascii字符的情况
    return strlen($str);
    for ($ind = 0; $ind < $ascLen; $ind++) {
        if (ord(substr($str, $ind, 1)) > 0xa0) {
            $ccLen++;
            $ind++;
        } else {
            $ccLen++;
        }
    }
    return $ccLen;
}
function ccStrLeft($str, $len) //从左边截取中英文混合字符串
{
    $ascLen = strlen($str);
    if ($ascLen <= $len) return $str;
    $hasCC = ereg("[xA1-xFE]", $str); //同上
    $hasAsc = ereg("[x01-xA0]", $str);
    if (!$hasCC) return substr($str, 0, $len);
    if (!$hasAsc) if ($len & 0x01) //如果长度是奇数
    return substr($str, 0, $len + $len - 2);
    else return substr($str, 0, $len + $len);
    $cind = 0;
    $flag = 0;
    while ($cind < $ascLen) {
        if (ord(substr($str, $cind, 1)) < 0xA1) $flag++;
        $cind++;
    }
    if ($flag & 0x01) return substr($str, 0, $len);
    else return substr($str, 0, $len - 1);
?>


本文地址:http://www.phprm.com/develop/fs3951.html

转载随意,但请附上文章地址:-)

标签:php统计 中文汉字字数

发表留言