php截取中文字符串长度的mb_substr()、mb_strcut()函数 附strlen/mb_strlen

原创 2011年01月08日 16:21:00

substr()函数可以用来分割文字,但要分割的文字如果包括中文字符往往会遇到问题,这时可以用mb_substr()/mb_strcut这个函数,mb_substr() /mb_strcut的用法与substr()相似,只是在mb_substr()/mb_strcut最后要加入多一个参数,以设定字符串的编码,但是 一般的服务器都没打开php_mbstring.dll,需要在php.ini在把php_mbstring.dll打开。


举个例子:

<?php
echo mb_substr('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8');
?>
输出:这样一来我的字

<?php
echo mb_strcut('这样一来我的字符串就不会有乱码^_^', 0, 7,'utf-8');
?>
输出:这样

从上面的例子可以看出,mb_substr是按字来切分字符,而mb_strcut是按字节来切分字符,但是都不会产生半个字符的现象……

上面一段是摘抄网络上的,结果都是经本人测试得出的。

个人理解:
mb_substr()函数对英文或中文字符都表示一个单位。
mb_strcut()函数对中文字符是3个单位,英文是1个单位。

例如:
<?php
$str = "这样abcd一来";
echo "mb_substr:".mb_substr($str, 0, 5, 'utf-8');
echo "<br>";
echo "mb_strcut:".mb_strcut($str, 0, 8, 'utf-8');
?>
输出结果如下:
mb_substr: 这样abc
mb_strcut:  这样ab


附:

strlen 与 mb_strlen 的差别:
<?php
$str="中文a字1符"; 
echo strlen($str);
echo "<br />"; 
echo mb_strlen($str,'UTF8'); 
?>
输出结果:
14 


以上结果都是经测试得出

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

我们知道在php中要判断字符串长度我们只要使用strlen()与mb_strlen()函数既可以了,但是并不是我们想得这么简单,特别是在对中英文混合时上面函数有点力不从心哦,下面我来给各位朋友介绍。 ...

PHP获取字符串长度之strlen和mb_strlen的区别

在PHP中,strlen与mb_strlen是求字符串长度的函数,但是对于一些初学者来说,如果不看手册,也许不太清楚其中的区别。 下面通过例子,讲解这两者之间的区别。 先看例子: //测试时...

玩转PHP(一)---php中处理汉字字符串长度:strlen和mb_strlen

今天正式开始学习PHP了,不过一不小心发现了一个PHP独特的地方:PHP在处理包含汉字的字符串时要特别注意。 比如 ...

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

在php中常见的计算字符串长度的函数有:strlen和mb_strlen,下面是对这两个函数的比较说明(编码方式UTF8) 比较strlen和mb_strlen  当字符全是英文字符的时候,两者是...
  • jj88888
  • jj88888
  • 2015年04月20日 09:59
  • 630

PHP字符串截取函数strlen和mb_strlen的区别

2
  • aopao1
  • aopao1
  • 2014年09月01日 12:01
  • 212

php函数substr、mb_substr、mb_strcut截取中文比较

一、函数说明     substr、mb_substr、mb_strcut这三个函数都用来截取字符串,所不同的是:substr是最简单的截取,无法适应中文;mb_substr是按字来切分字符串,而mb...

PHP中substr、mb_substr、mb_strcut这三个截取字符串函数的比较

一、函数说明 substr、mb_substr、mb_strcut这三个函数都用来截取字符串,所不同的是: substr是最简单的截取,无法适应中文,截取中文会产生半个字符的现象,出现乱码; m...

在php中使用mb_strlen()函数和mb_substr()函数

php默认是不支持mb_strlen()函数的,需要安装扩展模块。安装方法如下: yum install php-mbstring 找到mbstring.so的位置,可以使用rpm -ql...
  • monsion
  • monsion
  • 2013年06月13日 21:56
  • 4244

自定义函数实现mb_strlen与中文 strrev转置功能

mb_strlen 功能:获取字符串长度,主要是指非ascii编码的字符串。 代码:
  • tbitwqb
  • tbitwqb
  • 2017年11月14日 10:15
  • 19
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php截取中文字符串长度的mb_substr()、mb_strcut()函数 附strlen/mb_strlen
举报原因:
原因补充:

(最多只允许输入30个字)