PHP计算字符串长度

PHP计算字符串长度,包括计算英文、GBK、UTF-8多种字符集下PHP如何计算字符串长度。英文字符串长度
strlen()是PHP自带的计算英文字符串的函数。

[b][size=medium][color=blue]GBK字符串长度[/color][/size][/b]
[color=green][b]中文字符计算为2个字符,英文字符计算为1个[/b][/color],可以统计中文字符串长度的函数。

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;
}



[color=blue][size=medium][b]UTF8字符串长度 [/b][/size][/color]
下面定义的strlen_utf8函数可以统计UTF-8字符串的长度,但不同的是,该函数并不考虑字节,这有些类似 Javascript 中字符串的length方法,[color=green][b]一个字符全部按 1 个长度计算[/b][/color]。


<?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);
?>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值