php mb_strlen

在字符实际编码和指定编码相同时,可以算出中文字符的个数。

示例:

[pcsh lang="applescript" tab_size="4" message="" hl_lines="" provider="manual"]

<?php
$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

[/pcsh]

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

利用这两个函数则可以联合计算出一个中英文混排的串的占位是多少(一个中文字符的占位是2,英文字符是1)

语法:

[pcsh lang="applescript" tab_size="4" message="" hl_lines="" provider="manual"]

mixed mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] )

[/pcsh]

参数:

str

要检查长度的字符串

encoding

encoding 参数为字符编码。如果省略,则使用内部字符编码。

返回值:

返回具有 encoding 编码的字符串 str 包含的字符数。 多字节的字符被计为 1。

如果给定的 encoding 无效则返回 FALSE

 

 

 

此处评论已关闭