php判断字符串长度 strlen()与mb_strlen()函数

PHP strlen() 函数

定义和用法

strlen() 函数返回字符串的长度。

语法

strlen(string)

参数:string 

 1 <?php 
 2 
 3 $str=‘中文a字1符‘; 
 4 
 5 echo strlen($str); 
 6 
 7 echo ‘<br />‘; 
 8 
 9 echo mb_strlen($str,‘UTF8‘); 
10 
11 //输出结果 
12 
13 //14 
14 
15 //6 
16 
17 ?>

结果分析:在strlen计算时,对待一个UTF8的中文字符是3个长度,所以“中文a字1符”长度是3*4+2=14 
在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算,所以“中文a字1符”长度是6

 

mb_strlen()函数

需要注意的是,mb_strlen并不是PHP核心函数,使用前需要确保在php.ini中加载了php_mbstring.dll,即确保

“extension=php_mbstring.dll”这一行存在并且没有被注释掉,否则会出现未定义函 数的问题。

<?php
    //测试时文件的编码方式要是UTF8
    $str='中文a字1符';
    echo strlen($str).'<br>';//14
    echo mb_strlen($str,'utf8').'<br>';//6
    echo mb_strlen($str,'gbk').'<br>';//8
    echo mb_strlen($str,'gb2312').'<br>';//10
    ?> 

结果分析:在strlen计算时,对待一个UTF8的中文字符是3个长度,所以“中文a字1符”长度是3*4+2=14,在mb_strlen

计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算,所以“中文a字1符”长度是6 .


虽然上面函数可以简单解决一些中英文混合问题,但是不能用于实实际中,下面我来给各位朋友介绍其它比较好的办

法。

PHP获取中英文混合字符串长度的实现代码如下,1中文=1位,2英文=1位,可自行修改

 

转自:https://www.cnblogs.com/ryanzheng/p/8285113.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值