马永占,myz,mayongzhan

相当稳定的进步,欢迎回贴交流

原创 统计中字符串长度收藏

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan

<?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 />";
?>

发表于 @ 2007年11月20日 12:53:00|评论(loading...)|收藏

新一篇: FCKeditor结合zend和smarty | 旧一篇: 6174猜想

用户操作
[即时聊天] [发私信] [加为好友]
myz
订阅我的博客
XML聚合  FeedSky
myz的公告

XML聚合
feedsky
文章分类
收藏
    存档
    Csdn Blog version 3.1a
    Copyright © myz