打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
PHP substr(),mb

PHP substr(),mb_substr()及mb_strcut的区别和用法

(2011-09-19 00:27:43)
标签:

杂谈

分类: php

PHP 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是按字节来切分字符,但是都不会产生半个字符的现象……

mbstring 函数的说明:

php的mbstring扩展模块提供了多字节字符的处理能力,平常最常用的就是用mbstring来切分多字节的中文字符,这样可以避免出现半个字符的情况,由于是php的扩展,它的性能也要比一些自定义的多字节切分函数要好上一些。

mbstringextension提供了几个功能类似的函数,mb_substr和mb_strcut,看看手册上对它们的解释。

mb_substr
mb_substr() returns the portion of str specified by the start andlength parameters.

mb_substr() performs multi-byte safesubstr() operation based on number of characters. Position iscounted from the beginning of str. First character's position is 0.Second character position is 1, and so on.

mb_strcut
mb_strcut() returns the portion of str specified by the start andlength parameters.

mb_strcut() performs equivalentoperation as mb_substr() with different method. If start positionis multi-byte character's second byte or larger, it starts fromfirst byte of multi-byte character.

It subtracts string from str that isshorter than length AND character that is not part of multi-bytestring or not being middle of shift sequence.

再举个例子,有一段文字,分别用mb_substr和mb_strcut来做切分:

PLAIN TEXT
CODE:
<?php
$str = '我是一串比较长的中文-www.webjx.com';

echo "mb_substr:" . mb_substr($str, 0, 6, 'utf-8');

echo "<br>";

echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8');
?>
输出结果如下:

mb_substr:我是一串比较
mb_strcut:我是

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
如何将字符串按指定长度分割(多字节安全)?
mysql的字段长度和php字符长度判断
php 字符串截取:中英文混合文本截取字符串函数
php 字符串截取函数
php 去掉字符串的最后一个字符
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服