字符串长度(PHP学习)
2013-08-15 23:01
239 查看
1.计算字符串长度有哪些方法?
答:strlen() 和 mb_strlen()
2.两者有什么区别
答:
如下代码
strlen($str)计算的是字节的长度,在utf8下一个汉字代表3个字符,算出来是11 在GB2312和GBK下是2个字符,算出来是9
mb_strlen()计算的是字符长度 mb_strlen($str,[GBK|GB2312|utf8]) 这里"|"是或的意思,就是mb_strlen()的第二个参数是编码形式GBK或者GB2312或者utf8
要使用mb_strlen()方法要把php.ini里面的extension=php_mbstring.dll 这个取消禁用才行,不然调用不到这个方法
这里的mb是multiByte,多字节的意思
3.为什么英文字符是一个字节,中文字符有时是2个字节,有时是3个字节?
答:计算机最开始的时候是纯英文的,所有的字符不到128种变化因此用8位表示的话就是
0 000 0000 到 0 111 1111之间的变化
中文的变化更多 在GBK和GB2312模式下需要2个字节
UTF8下加入了更多的变化,所以要3个字节
答:strlen() 和 mb_strlen()
2.两者有什么区别
答:
如下代码
<?php $str = 'hello中国'; ?>
strlen($str)计算的是字节的长度,在utf8下一个汉字代表3个字符,算出来是11 在GB2312和GBK下是2个字符,算出来是9
mb_strlen()计算的是字符长度 mb_strlen($str,[GBK|GB2312|utf8]) 这里"|"是或的意思,就是mb_strlen()的第二个参数是编码形式GBK或者GB2312或者utf8
要使用mb_strlen()方法要把php.ini里面的extension=php_mbstring.dll 这个取消禁用才行,不然调用不到这个方法
这里的mb是multiByte,多字节的意思
3.为什么英文字符是一个字节,中文字符有时是2个字节,有时是3个字节?
答:计算机最开始的时候是纯英文的,所有的字符不到128种变化因此用8位表示的话就是
0 000 0000 到 0 111 1111之间的变化
中文的变化更多 在GBK和GB2312模式下需要2个字节
UTF8下加入了更多的变化,所以要3个字节
相关文章推荐
- PHP获取字符串中英文混合长度
- PHP学习系列之字符串和正则表达式
- php字符串的长度计算、截取、分割
- php中计算中文字符串长度、截取中文字符串的函数代码
- php学习笔记:第三节--php中的字符串
- PHP学习(10) 整理字符串
- PHP学习笔记4:字符串与正则
- php将字符串随机分割成不同长度数组的方法
- PHP截取字符串,获取长度,获取字符位置的函数
- PHP学习笔记-->003 PHP 字符串
- PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
- php中mb_strlen,mb_substr根据中文长度截取字符串
- PHP学习笔记07——字符串和正则
- php学习第二章:字符串处理函数(二)字符串查找、替换、截取等
- PHP计算中英混输字符串长度
- php 计算字符串长度
- php学习(5)字符串
- php学习--3 流程控制语句,字符串操作
- php中计算中文字符串长度、截取中文字符串
- php中计算中文字符串长度、截取中文字符串的函数代码