将一些字符串显示到页面中,规定不超过一定的长度。

先要获取到字符串的长度,strlen( )和mb_strlen( )两个函数可以获取,而这两个函数有有所不同

<?php  //测试时文件的编码方式要是UTF8  $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
?> 

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

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

echo (strlen($str) + mb_strlen($str,'UTF8')) / 2; 

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

PHP内置的字符串长度函数strlen无法正确处理中文字符串,它得 到的只是字符串所占的字节数。对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是3倍的差异了(在 UTF-8编码下,一个汉字占3个字节)。

采用mb_strlen函数可以较好地解决这个问题。mb_strlen的用法和 strlen类似,只不过它有第二个可选参数用于指定字符编码。例如得到UTF-8的字符串$str长度,可以用 mb_strlen($str,'UTF-8')。如果省略第二个参数,则会使用PHP的内部编码。内部编码可以通过 mb_internal_encoding()函数得到。

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

以上关于strlen( )和mb_strlen( )的解释转自——细说PHP中strlen和mb_strlen的区别

获取到字符长度之后,超过部分就截取掉,用.去填充一些已表示被截取过,即可。

if(mb_strlen($str)>200){$newStr = mb_substr($str,0,60,"UTF8")."...";
}

mb_substr( )跟substr( )其实差不多,mb_substr( )用UTF8去计算,一个字就是一位,比较便于截取。

PHP限制字符串显示长度相关推荐

  1. 【Unity/C#】限制字符串显示长度,比如限制玩家角色名字显示长度

    例如:UI显示规则:英文字符长度==1,中文字符长度==2,限制字符串显示长度不超过10,超出部分用"···"代替 playerNameText.text = StringUtil ...

  2. php页面上限制字符串长度,PHP如何限制字符串显示长度

    将一些字符串显示到页面中,规定不超过一定的长度. 先要获取到字符串的长度,strlen( )和mb_strlen( )两个函数可以获取,而这两个函数有有所不同<?php //测试时文件的编码方式 ...

  3. ASP.NET - 截取固定长度字符串显示在页面,多余部分显示为省略号

    ASP.NET - 截取固定长度字符串显示在页面,多余部分显示为省略号 方法一: publicstaticstring GetString(string str, int length){int i ...

  4. 用汇编语言写一个程序,它先接收一个字符串,然后显示其中数字符的个数、英文字母的个数和字符串的长度

    ## 用汇编语言写一个程序,它先接收一个字符串,然后显示其中数字符的个数.英文字母的个数和字符串的长度 DATAS SEGMENT str1 db 0dh,0ah,'please enter a st ...

  5. Javascript中得到中英文混合字符串的长度

    有同事在公司的OA上发了个贴子,介绍在javascript中如何得到中英文混合字符串的长度. 用的是正则表达式. var str = "坦克是tank的音译";var len = ...

  6. excel取html文本长度,excel字符长度 怎么计算excel里的字符串的长度

    请教:在EXCEL中如何统计字符长度? 打开excel文件,确定需要编辑的内容 选择功能区的"公式"功能 在公式中选择"LEN"功能 在text中选择需要编辑的 ...

  7. python中获得字符串s长度的方法是什么_获得字符串s长度的方法是什么?【 】(8.0分)_学小易找答案...

    [名词解释]多功能酶 [填空题]维生素B6包括______.______.______三种物质 [判断题]Python是一种开源.免费的高级动态编程语言. (5.0分) [简答题]请写出程序运行后显示 ...

  8. C语言求字符串的长度

    C语言求字符串的长度 问题描述:求This is a C program字符串的长度: 问题分析:首先,了解字符串在C语言的定义,C语言中字符串是通过字符指针来间接实现的.利用一个循环来遍历该字符串, ...

  9. PHP:计算字符串中汉字的个数、正确计算字符串的长度

    也许很多phper不知道,PHP内置的字符串长度函数strlen()无法正确处理中文字符串,它得到的只是字符串所占的字节数.对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UT ...

最新文章

  1. Visual Studio 2013软件安装教程
  2. 20165306 我期望的师生关系
  3. springboot2 使用hikaridatasource 并测试_基于Spring Boot 2.x的后端管理网站脚手,源码免费分享...
  4. selenium 解析网页_用Selenium进行网页搜刮
  5. SetInterval(循环计时器)
  6. 09.显式的实现接口的方法
  7. window系统服务器,远程连接mysql数据库。
  8. 使用MySQL自带工具mysqlhotcopy快速备份MyISAM引擎的MySQL数据库
  9. [USACO10MAR]伟大的奶牛聚集
  10. 记事本下编写并运行Java代码
  11. Windows10中同时安装MySQL5和MySQL8
  12. Python-经验模态分解(EMD)分解及测试用例
  13. 东芝电视linux系统刷安卓,东芝wt8成功刷入7.1.1
  14. ExecutorService 详解 -- 执行器服务(线程池)
  15. 实用一位加法电路-全加器(全加器真值表、全加器的逻辑组合电路)、几种基本组合逻辑电路真值表 补充:逻辑电路基础:与门、或门、非门----计算机组成原理
  16. PTA 7-114 用if-else语句编程百分制成绩转换为五分制成绩
  17. PHP.ini配置文件[中文]
  18. Python 打地鼠小游戏
  19. Xcode 运行报错:Could not load the “ “ image referenced from a nib in the bundle with identifier
  20. echarts + echarts-gl - 使用geo3d + map3d + scatter3D做3d地图

热门文章

  1. 1207-尝试下载DGL
  2. 使用宏基因组的方法快速鉴定新冠病毒SARS-CoV2
  3. 创业公司路演PPT模板
  4. 大学物理实验长度的测量实验报告_大学物理实验长度测量
  5. 小米电视怎么看cctv?安装电视家教你锁定2022世界杯“观赛位”
  6. Android Studio开发(六)短距离无线通信——蓝牙通信
  7. C. The Intriguing Obsession(神仙组合数)
  8. 蚂蚁金服智能推荐引擎解决方案与实践
  9. LXC的Python学习笔记
  10. 筋斗云案例 - animate、transition都能实现