标题: 统计中字符串长度
mayongzhan
PHPEye Developer
Rank: 8Rank: 8


UID 136
精华 2
积分 20
帖子 41
翻译 18
原创 1
阅读权限 1
注册 2007-6-30
状态 离线
发表于 2007-11-21 11:17  资料  短消息  加为好友 
统计中字符串长度

http://blog.csdn.net/mayongzhan/archive/2007/11/20/1894503.aspx

<?php
/**
* @name test.php
* @date Mon Nov 19 21:10:39 CST 2007
* @copyright 马永占(MyZ)
* @author 马永占(MyZ)
* @link http://blog.csdn.net/mayongzhan/
*/

header("Content-Type: text/html; charset=utf-8");
echo $test = "马永占MyZ";echo "<br />";
mb_internal_encoding("UTF-8");//使用mb_strlen
echo "strlen      ".strlen($test)."<br />";
echo "mb_strlen   ".mb_strlen($test)."<br />";
echo "mb_strwidth ".mb_strwidth($test)."<br />";

function countStr($str, $handle, $onlyCh=0)
{
       //$handle = 1 按照mb_strlen算 一个中文按照1个字算
       //$handle = 2 按照mb_strwidth算 一个中文按照2个字算
       //$handle = 3 按照strlen算 一个中文按照3个字算
       //$onlyCh = 1 只统计中文
       $length = strlen($str);
       if ($handle == 3 && $onlyCh==0) {
              return $length;
       }
       else {
              $i = 0;
              if ($onlyCh == 1) {
                     $k = 0;
              }
              else {
                     $k = 1;
              }
              while($i < $length) {
                     if(preg_match("/^[" . chr(0xa1) . "-" . chr(0xff) . "]+$/", $str[$i])) {
                            $i += 3;
                            $n += $handle;
                     }
                     else {
                            $i += 1;
                            $n += $k;
                     }
              }
              return $n;
       }
}
echo "countStr1   " . countStr($test, 1) . "<br />";
echo "countStr2   " . countStr($test, 2) . "<br />";
echo "countStr3   " . countStr($test, 3) . "<br />";
echo "countStr4   " . countStr($test, 1, 1) . "<br />";
echo "countStr5   " . countStr($test, 2, 1) . "<br />";
echo "countStr6 " . countStr($test, 3, 1) . "<br />";
?>





顶部
 


PHPEye开源社区


当前时区 GMT+8, 现在时间是 2008-12-5 08:40

    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.027433 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - PHPEye开源社区 - Archiver