`
txf2004
  • 浏览: 7079942 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

统计中字符串长度

阅读更多
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。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 />";
?>
v
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics