php中strlen()和mb_strlen()函数

一、总结

一句话总结:

mb_strlen()函数 的作用是 通过不同的编码计算字符串的长度: 比如 echo mb_strlen('中文a字1符','utf8').'<br>';//6

1、mb_strlen()函数 使用注意?

开启php_mbstring.dll扩展

mb_strlen并不是PHP核心函数,使用前需要确保在php.ini中加载了php_mbstring.dll,即确保“extension=php_mbstring.dll”这一行存在并且没有被注释掉,否则会出现未定义函 数的问题

2、解释下列代码的结果(strlen($str)和mb_strlen($str,'utf8'))?

|||-begin

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

|||-end

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

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

转自或参考:php判断字符串长度 strlen()与mb_strlen()函数
https://www.cnblogs.com/ryanzheng/p/8285113.html

PHP strlen() 函数

定义和用法

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

语法

strlen(string)

参数:string

 <?php 

 $str=‘中文a字1符‘; 

 echo strlen($str); 

 echo ‘<br />‘; 

 echo mb_strlen($str,‘UTF8‘); 

 //输出结果 

 //14 

 //6 

 ?>

结果分析:在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>';//
echo mb_strlen($str,'utf8').'<br>';//
echo mb_strlen($str,'gbk').'<br>';//
echo mb_strlen($str,'gb2312').'<br>';//
?>

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

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

虽然上面函数可以简单解决一些中英文混合问题,但是不能用于实实际中。

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

 

最新文章

  1. Java实现画八卦
  2. Android6.0以后动态增加权限
  3. Explode TArray
  4. 【原创】基于Memcached 实现用户登录的Demo(附源码)
  5. 【转】Android Intent Action 大全
  6. pinyin4j
  7. SQL-Employees Earning More Than Their Managers
  8. UML_交互图
  9. 宏定义重写NSLog
  10. ps抠图的几种方法
  11. 20165314 2016-2017-2 《Java程序设计》第9周学习总结
  12. Python3 timeit的用法
  13. 20170712 SQL Server 日志文件收索
  14. ps p图
  15. 梦殇 chapter three
  16. python 构造mysql爆破器
  17. BeanPostProcessor的五大接口
  18. linux使用rsync、inotify-tools实现多台服务器文件实时同步
  19. PAT L1-009 N个数求和(运用GCD进行通分)
  20. 批量导出文件名 另存为bat文件

热门文章

  1. Go map使用
  2. 将现有vue项目基于electron打包成桌面应用程序
  3. EF方式增加数据
  4. 雨后清风U盘启动盘的五大用处及制作方法
  5. 用Python来使用科大讯飞语音识别,so easy
  6. 从win到多系统
  7. C语言计算两个日期间隔天数
  8. Java基础 IO流的文件和目录的五类主要操作
  9. 2018江苏徐州icpc试题-A-生化危机【多源点-基础广搜】
  10. ubuntu下后台服务的管理