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 相关文章推荐
修改Zend引擎实现PHP源码加密的原理及实践
Apr 14 PHP
PHP分页显示制作详细讲解
Nov 19 PHP
关于zend studio 出现乱码问题的总结
Jun 23 PHP
ThinkPHP验证码使用简明教程
Mar 05 PHP
基于PHP的简单采集数据入库程序
Jul 30 PHP
php通过array_unshift函数添加多个变量到数组前端的方法
Mar 18 PHP
PHP中应该避免使用同名变量(拆分临时变量)
Apr 03 PHP
详解HTTP Cookie状态管理机制
Jan 14 PHP
crontab无法执行php的解决方法
Jan 25 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
Oct 26 PHP
详解PHP中的外观模式facade pattern
Feb 05 PHP
PHP基于面向对象封装的分页类示例
Mar 15 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中使用XML
2006/10/09 PHP
一个用php实现的获取URL信息的类
2007/01/02 PHP
PHP 数据结构 算法描述 冒泡排序 bubble sort
2011/07/10 PHP
php Ubb代码编辑器函数代码
2012/07/05 PHP
PHP请求Socket接口测试实例
2016/08/12 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
laravel5 Eloquent 实现事务方式
2019/10/21 PHP
Javascript 篱式条件判断
2008/08/22 Javascript
js实现的捐赠管理完整实例
2015/01/20 Javascript
js实现延迟加载的方法
2015/06/24 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
2015/12/10 Javascript
jQuery+json实现动态创建复杂表格table的方法
2016/10/25 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
2017/01/10 Javascript
vue.js中指令Directives详解
2017/03/20 Javascript
如何使用JS在HTML中自定义字符串格式化
2017/07/20 Javascript
Vue-Cli中自定义过滤器的实现代码
2017/08/12 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑
2019/09/17 Javascript
[02:15]2014DOTA2国际邀请赛 专访LGD.lin小兔子是大腿
2014/07/14 DOTA
python获取本地计算机名字的方法
2015/04/29 Python
Pandas中把dataframe转成array的方法
2018/04/13 Python
对python requests发送json格式数据的实例详解
2018/12/19 Python
将python图片转为二进制文本的实例
2019/01/24 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
pyqt 实现在Widgets中显示图片和文字的方法
2019/06/13 Python
Python通过cv2读取多个USB摄像头
2019/08/28 Python
sklearn-SVC实现与类参数详解
2019/12/10 Python
Python字符串的15个基本操作(小结)
2021/02/03 Python
html5 input输入实时检测以及延时优化
2018/07/18 HTML / CSS
cf搞笑广告词
2014/03/14 职场文书
体育之星事迹材料
2014/05/11 职场文书
资源环境与城乡规划管理专业自荐书
2014/09/26 职场文书
2014年财务经理工作总结
2014/12/08 职场文书
2015年纪检监察工作总结
2015/04/08 职场文书
2015银行年终工作总结范文
2015/05/26 职场文书
Python必备技巧之函数的使用详解
2022/04/04 Python