[转]php获取含中文字符串长度
2014-05-06 16:17
274 查看
本文转载自:/article/3835010.html
PHP计算字符串长度,包括计算英文、GBK、UTF-8多种字符集下PHP如何计算字符串长度。英文字符串长度
strlen()是PHP自带的计算英文字符串的函数。
GBK字符串长度
中文字符计算为2个字符,英文字符计算为1个,可以统计中文字符串长度的函数。 function abslength($str){
$len=strlen($str);
$i=0;
while($i<$len)
{
if(preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",$str[$i]))
{
$i+=2;
}
else
{
$i+=1;
}
}
return $i;
}
UTF8字符串长度
下 面定义的strlen_utf8函数可以统计UTF-8字符串的长度,但不同的是,该函数并不考虑字节,这有些类似 Javascript 中字符串的 length方法,一个字符全部按 1 个长度计算。 <?php // 说明:计算 UTF-8 字符串长度(忽略字节的方案)
function strlen_utf8($str) {
$i = 0;
$count = 0;
$len = strlen ($str);
while ($i < $len) {
$chr = ord ($str[$i]);
$count++;
$i++;
if($i >= $len) break;
if($chr & 0x80) {
$chr <<= 1;
while ($chr & 0x80) {
$i++;
$chr <<= 1;
}
}
}
return $count;
}
$str = "www.phpq.net-PHP资讯";
echo strlen_utf8($str);
?>
PHP计算字符串长度,包括计算英文、GBK、UTF-8多种字符集下PHP如何计算字符串长度。英文字符串长度
strlen()是PHP自带的计算英文字符串的函数。
GBK字符串长度
中文字符计算为2个字符,英文字符计算为1个,可以统计中文字符串长度的函数。 function abslength($str){
$len=strlen($str);
$i=0;
while($i<$len)
{
if(preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",$str[$i]))
{
$i+=2;
}
else
{
$i+=1;
}
}
return $i;
}
UTF8字符串长度
下 面定义的strlen_utf8函数可以统计UTF-8字符串的长度,但不同的是,该函数并不考虑字节,这有些类似 Javascript 中字符串的 length方法,一个字符全部按 1 个长度计算。 <?php // 说明:计算 UTF-8 字符串长度(忽略字节的方案)
function strlen_utf8($str) {
$i = 0;
$count = 0;
$len = strlen ($str);
while ($i < $len) {
$chr = ord ($str[$i]);
$count++;
$i++;
if($i >= $len) break;
if($chr & 0x80) {
$chr <<= 1;
while ($chr & 0x80) {
$i++;
$chr <<= 1;
}
}
}
return $count;
}
$str = "www.phpq.net-PHP资讯";
echo strlen_utf8($str);
?>
相关文章推荐
- PHP如何获取混合中文字符串长度
- (转载)PHP如何获取中文字符串长度 utf8_strlen()
- PHP如何获取中文和 中英文混字符串长度
- PHP截取字符串,获取长度,获取字符位置的函数 中文字符截取
- php中获取字符串长度 中文算两个字节
- php 截取中文字符串 , 获取字符串长度
- php中中文字符串的截取和获取长度 mb_substr() mb_strlen()
- PHP如何获取中文字符串长度 utf8_strlen()[转载]
- PHP获取字符串长度,中文标点或者中文汉字算一个字符
- (转载)PHP如何获取中文字符串长度 utf8_strlen()/mb_strlen()
- php获取字符串长度
- java中获取包含中文字符的字符串长度
- (转)PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
- php获取字符串长度函数strlen和mb_strlen
- PHP判断中文字符串的长度和字节长度
- php:获取字符串的长度
- php取含有中文的字符串的真实长度(一个中文算两个字符)
- C#获取中文英文混合字符串Byte字节长度
- php获取字符串长度的函数
- Java 中正确获取中文字符串长度