php字符串截取函数mb_substr用法实例分析


Posted in PHP onJune 25, 2019

本文实例讲述了php字符串截取函数mb_substr用法。分享给大家供大家参考,具体如下:

string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )-截取字符串

(PHP 4 >= 4.0.6, PHP 5)

$str 要获取字符串的目标字符串(字符串起始位置为0)
$start,$str中要使用的第一个字符的位置
$length,获取的子字符串的长度(注意不是结束位置)
$encoding,可指定字符编码(一般用于处理中文字符时使用,同时这个问题碰到的非常多)

示例:

<?php
mb_internal_encoding ("UTF-8");  //如果把UTF-8改为编码,下面针对于中文字符串处理的值会改变。
echo mb_internal_encoding()."";  //获取字符编码为ISO-8859-1
echo mb_substr('abcdefghijk',0,9)."";  //abcdefghi
echo mb_substr('abcdefghijk',1,5)."";  //bcdef
echo mb_substr('我们都是中国人',0,9)."";  //我们都是中国人
echo mb_substr('我们都是中国人',0,9,'gb2312')."";  //我们都是中
echo mb_substr('我们都是中国人',0,9,'utf-8');  //我们都是中国人
?>

总结:

1、在处理英文字符串的时候,该函数的第四个参数($encoding)可以忽略。
2、在处理中文字符串的时候,就要小心了,一定要考虑编码问题,编码不同,中文的值也不同。
3、在中文字符串导入数据库时,就显得更为重要了。
4、处理字符串或文本的编码能力,是衡量程序员功力的一项标准。

补充:substr和mb_substr的区别

异同点:

两个函数都是截取字符串的长度,不同的是mb_substr可以针对多字节编码的汉字进行截取,从而防止乱码的出现

实例说明:

示例1:

<?php
$chuan="我是中国人!";
echo substr($chuan,0,3);
echo '<br />';
echo mb_substr($chuan,0,3,'utf8');
?>

运行结果:


我是中

在utf8编码下,由于一个汉字占3个字节,所以第一个输出的是: 我
第二个输出的是: 我是中

示例2:

<?php
$chuan="我是中国人!";
echo substr($chuan,0,-4);
echo '<br />';
echo mb_substr($chuan,0,-2,'utf8');
?>

运行结果:

我是中国
我是中国

两个输出的都是: 我是中国
第一个长度为负4,就会省略掉!和人,从零开始,就会包括我是中国
第二个同理

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

PHP 相关文章推荐
PHP用户指南-cookies部分
Oct 09 PHP
对Session和Cookie的区分与解释
Mar 16 PHP
php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
May 15 PHP
PHP中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
Mar 23 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
Jan 16 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
Jun 17 PHP
php中time()和mktime()方法的区别
Sep 28 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
Apr 29 PHP
浅谈PHP调用Webservice思路及源码分享
Jun 04 PHP
php写入、删除与复制文件的方法
Jun 20 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
Oct 26 PHP
PHP判断FORM表单或URL参数来的数据是否为整数的方法
Mar 25 PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
Jun 25 #PHP
Laravel向公共模板赋值方法总结
Jun 25 #PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
Jun 25 #PHP
PHP中遍历数组的三种常用方法实例分析
Jun 24 #PHP
php字符串过滤strip_tags()函数用法实例分析
Jun 24 #PHP
提高Laravel应用性能方法详解
Jun 24 #PHP
PHP二维索引数组的遍历实例分析【2种方式】
Jun 24 #PHP
You might like
php 代码优化的42条建议 推荐
2009/09/25 PHP
php中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
php更新mysql后获取影响的行数发生异常解决方法
2013/03/28 PHP
深入理解curl类,可用于模拟get,post和curl下载
2013/06/08 PHP
php打印输出棋盘的实现方法
2014/12/23 PHP
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
javascript DOM编程实例(智播客学习)
2009/11/23 Javascript
Javascript原型链和原型的一个误区
2014/10/22 Javascript
js上传图片及预览功能实例分析
2015/04/24 Javascript
jquery淡入淡出效果简单实例
2016/01/14 Javascript
浅谈js script标签中的预解析
2016/12/30 Javascript
Angular的$http的ajax的请求操作(推荐)
2017/01/10 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
从零开始学习搭建React脚手架项目
2018/08/23 Javascript
利用JavaScript将Excel转换为JSON示例代码
2019/06/14 Javascript
解决Nuxt使用axios跨域问题
2020/07/06 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
2020/09/12 Javascript
JavaScript 如何计算文本的行数的实现
2020/09/14 Javascript
[56:57]LGD vs VP 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第一场 8.20.mp4
2019/08/22 DOTA
Vue的el-scrollbar实现自定义滚动
2018/05/29 Python
利用Python小工具实现3秒钟将视频转换为音频
2019/10/29 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
2020/03/12 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
opencv 图像滤波(均值,方框,高斯,中值)
2020/07/08 Python
Rowdy Gentleman服装和配饰:美好时光
2019/09/24 全球购物
资产经营总监岗位职责范文
2013/12/01 职场文书
民主评议党员自我评价材料
2014/09/18 职场文书
2014年小学教研工作总结
2014/12/06 职场文书
盗窃罪辩护词范文
2015/05/21 职场文书
员工规章制度范本
2015/08/07 职场文书
大学副班长竞选稿
2015/11/21 职场文书
2016七夕情人节感言
2015/12/09 职场文书
导游词之泉州崇武古城
2019/12/20 职场文书
浅谈Redis的keys命令到底有多慢
2021/10/05 Redis
十大最强火系宝可梦,喷火龙上榜,第一名有双火属性
2022/03/18 日漫