建站软件 优化软件 编程软件 网页辅助 站群程序 网站程序 图像处理 资源教程 字体下载 推荐软件


您的位置:首页 > PHP学习 > php怎么更好的获取字符串长度

php怎么更好的获取字符串长度

时间:2015-02-15 09:54:51  来源:免费模板网 作者:风雪 阅读次数 tagsphp获取字符串长度

一般规则的字符串的长度好处理,不规则的怎么办呢? 有空格,特殊字符等等?怎么办呢,请看下文

$enStr = ‘Hello,China!’;
echo strlen($enStr); // 输出:12


gbk编码下每个中文字符所占字节为2,例:

$zhStr = ‘您好,中国!’;
echo strlen($zhStr); // 输出:12

 


utf-8编码下每个中文字符所占字节为3,例:

$zhStr = ‘您好,中国!’;
echo strlen($zhStr); // 输出:18



那么如何计算这组中文字符串的长度呢?有人可能会说gbk下获取中文字符串长度除以2,utf-8编码下除以3不就行了吗?但是您要考虑字符串并不老实,99%的情况会以中英混合的情况出现。

这是WordPress中的一段代码,主要思想就是先用正则将字符串分解为个体单元,然后再计算单元的个数即字符串的长度,代码如下(只能处理utf-8编码下的字符串):

$zhStr = ‘您好,中国!’;
$str = ‘Hello,中国!’;

// 计算中文字符串长度
function utf8_strlen($string = null) {
// 将字符串分解为单元
preg_match_all(“/./us”, $string, $match);
// 返回单元个数
return count($match[0]);
}

echo utf8_strlen($zhStr); // 输出:6
echo utf8_strlen($str); // 输出:9
 


echo "

__________________________

";
$string="242432反对感是456,,犯得上广泛大使馆地方7890abc";
$mb_strlen=mb_strlen($string);
$len=20;
echo $string."

";
echo "总长为:".($mb_strlen+1)."

";
echo "截取数:".$len."

";
for($i=1;$i<=$mb_strlen+1;$i++){
if($i>$len){
echo $i." → ".mb_substr($string,$i)."…
";
continue;
}
echo $i." → ".mb_substr($string,$i)."
";
}
?>
 

本文地址:https://www.freemoban.com/php/2015/0215/568.html

猜你喜欢
栏目推荐
模板推荐

Copyright:www.freemoban.com 免费模板网 All Rights Reserved 网站备案:辽ICP备19014872号-2   辽公网安备 21010602000376号  辽公网安备:42900402000182号

免责声明:本站部分资源来自互联网收集,版权归原创者所有,如果侵犯了你的权益,我们会及时删除侵权内容,联系QQ:1615187561 谢谢合作!