strlen、mb_strlen计算中英文混排字符串长度

2009年07月2日 6:32 下午  |  分类:PHP

在php中常见的计算字符串长度的函数有:strlen和mb_strlen,下面是对这两个函数的比较说明(编码方式UTF8)

  • 比较strlen和mb_strlen
    当字符全是英文字符的时候,两者是一样。这里主要比较一下,中英文混排的时候,两个计算结果。(测试时编码方式是UTF8)

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

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

  • 关于中英文混排串的占位符计算:
    利用这两个函数则可以联合计算出一个中英文混排的串的占位是多少(一个中文字符的占位是2,英文字符是1),计算的方法是:如果一个混排字符串有a个中文,b个英文,占位是:

    1. <?php
    2. $str=中文a字1符;
    3. //计算如下
    4. echo (strlen($str) + mb_strlen($str,UTF8)) / 2;
    5. echo
    6. //输出结果
    7. //10
    8. ?>

    例如  “中文a字1符” 的strlen($str)值是14,mb_strlen($str)值是6,则可以计算出“中文a字1符”的占位是10.

一对同居男女同一天的日记

2009年07月2日 6:10 下午  |  分类:网络新发现

她的日记:

昨天晚上他真的是非常非常古怪。我们本来约好了一起去一个餐厅吃晚饭。

全文阅读 »

写两句?

2009年07月1日 5:10 上午  |  分类:个人

完整版中学课文《口技》,太淫荡了

2009年06月27日 7:46 下午  |  分类:网络新发现

中学语文课本有《口技》一文,想必大家都很熟悉了,但是课本中的并非原文,是经过删节的。
其中有涉及“男欢女爱”的描写,不合适学生阅读,故教科书中删除之。

全文阅读 »

100条激进言论--精选

2009年06月26日 4:56 上午  |  分类:网络新发现

一件又一件的被自杀,一群又一群不明真相的群众,一大撮一大撮别有用心的分子。我甚至都不觉得激进了。

全文阅读 »

中国应当复仇

2009年06月25日 4:32 上午  |  分类:网络新发现

今天看的一篇文章,不论对错,只为百家争鸣

全文阅读 »

很好看的裸体美女图

2009年06月24日 8:03 下午  |  分类:网络新发现

include的另类用法

2009年06月24日 2:49 上午  |  分类:PHP

include()时,如果被包含文件使用了return返回值,那么include()就直接返回该return的值

PHP代码
<?php      
//1.php      
return ‘hello world’;      
?>    
PHP代码
01.<?php      
02.//2.php      
03.$str = include ‘1.php’;      
04.echo “$str”; //输出hello world      
05.?>    
利用这个特性可以方便地使用php文件来做配置。比如

 

PHP代码
01.<?php      
02.//config.php      
03.return array(      
04.            ‘db’=>array(      
05.            ‘host’ => ‘localhost’,      
06.            ‘user’ => ‘root’,      
07.            ‘password’ => ‘root’,      
08.            ‘name’ => ‘test’,      
09.            ‘encoding’ => ‘utf8′     
10.    )      
11.);      
使用时只要 $config = include ‘inc/config.php’; 避免了不必要的变量,节省内存.

Show Me What I’m Looking For

2009年06月20日 11:07 下午  |  分类:网络新发现

2365039.mp3

Wait, I’m wrong
Should’ve done better than this
Please, I’ll be strong
I’m finding it hard to resist

So show me what I’m looking for

全文阅读 »

史上最淫荡的220条谜语

2009年06月15日 4:23 上午  |  分类:网络新发现

1 掀开热被窝,就往腿上摸,掰开两条腿,就往眼上搁(打一日常用品)答案 眼镜盒

2 男人小便(打一通讯工具) 答案 手提机

3 长腿男人(打一食物)答案 蛋糕

4 乳罩(打一社会现象) 答案 包二奶

全文阅读 »

Pages: 1 2 3 4 5 6 7 8 Next