利用PHP函数计算中英文字符串长度的方法


Posted in PHP onNovember 11, 2014

本文实例讲述了利用PHP函数计算中英文字符串长度的方法。分享给大家供大家参考。具体实现方法如下:

一般来说大家知道英文字符占一个字节,而中文字符gbk占两个字符,utf8占三个字符,很多人印象中php计算字符串长度就是strlen()函数,其实不然,它计算的是字节的长度而非字符的长度,那么如何获取一个字符串中字符的长度呢?还有有mb_strlen().

具体代码如下:

echo $str = 'PHP点点通'; 
echo strlen($str); //3*1+3*3=12  

echo mb_strlen($str, 'gb2312'); //3*1+3*2=9  

echo mb_strlen($str, 'utf-8'); //6

可恶的是,mb系列的函数并不是PHP核心函数,默认没有开启的,还有一个超简单的方法,通过正则将字符串分解为字符个体,计算字符的个数即为字符串的长度,代码如下:
<?php  

function _strlen($str)  

{  

        preg_match_all("/./us", $str, $matches);  

        return count(current($matches));  

}  

  

echo _strlen("PHP点点通");  //6  

?>

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
php4的session功能评述(一)
Oct 09 PHP
IIS+PHP+MySQL+Zend配置 (视频教程)
Dec 13 PHP
一步一步学习PHP(1) php开发环境配置
Feb 15 PHP
用sql命令修改数据表中的一个字段为非空(not null)的语句
Jun 04 PHP
PHP数组及条件,循环语句学习
Nov 11 PHP
你可能不知道PHP get_meta_tags()函数
May 12 PHP
php支付宝接口用法分析
Jan 04 PHP
PHP实现动态柱状图改进版
Mar 30 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
Oct 10 PHP
PHP MYSQL实现登陆和模糊查询两大功能
Feb 05 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 PHP
PHP+iframe模拟Ajax上传文件功能示例
Jul 02 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
Nov 11 #PHP
PHP基于imap获取邮件实例
Nov 11 #PHP
php无限极分类递归排序实现方法
Nov 11 #PHP
php实现压缩多个CSS与JS文件的方法
Nov 11 #PHP
详谈PHP文件目录基础操作
Nov 11 #PHP
浅谈PHP解析URL函数parse_url和parse_str
Nov 11 #PHP
php 魔术方法详解
Nov 11 #PHP
You might like
thinkphp配置连接数据库技巧
2014/12/02 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
2019/10/03 PHP
JavaScript 继承详解(一)
2009/07/13 Javascript
jquery multiSelect 多选下拉框
2010/07/09 Javascript
SWFObject 2.1以上版本语法介绍
2010/07/10 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
2011/02/22 Javascript
javascript最基本的函数汇总
2015/06/25 Javascript
javascript实现随机读取数组的方法
2015/08/03 Javascript
Eclipse引入jquery报错如何解决
2015/12/01 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
javascript实现一个网页加载进度loading
2017/01/04 Javascript
angular2倒计时组件使用详解
2017/01/12 Javascript
ajax前台后台跨域请求处理方式
2018/02/08 Javascript
vue权限路由实现的方法示例总结
2018/07/29 Javascript
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
JavaScript实现拖拽功能
2020/02/11 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
2020/04/13 Javascript
vue3自定义dialog、modal组件的方法
2021/01/04 Vue.js
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
Python输出9*9乘法表的方法
2015/05/25 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
怎么快速自学python
2020/06/22 Python
Python爬虫之Selenium实现键盘事件
2020/12/04 Python
Under Armour瑞典官方网站:美国高端运动科技品牌
2018/11/21 全球购物
一些.net面试题
2014/10/06 面试题
面向对象概念面试题(.NET)
2016/11/04 面试题
垃圾回收的优点和原理
2014/05/16 面试题
什么是继承
2013/12/07 面试题
2014年开学第一课活动方案
2014/03/06 职场文书
初中生操行评语大全
2014/04/24 职场文书
小学一年级语文教学反思
2016/03/03 职场文书
Vue2.0搭建脚手架
2022/03/13 Vue.js
Nginx代理Redis哨兵主从配置的实现
2022/07/15 Servers