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手册及PHP编程标准
Dec 17 PHP
修改php.ini实现Mysql导入数据库文件最大限制的修改方法
Dec 11 PHP
PHP 设计模式之观察者模式介绍
Feb 22 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
May 10 PHP
解析mysql 表中的碎片产生原因以及清理
Jun 22 PHP
discuz加密解密函数使用方法和中文注释
Jan 21 PHP
PHP调用VC编写的COM组件实例
Mar 29 PHP
thinkphp实现面包屑导航(当前位置)例子分享
May 10 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
Mar 03 PHP
php mysqli查询语句返回值类型实例分析
Jun 29 PHP
php实现xml转换数组的方法示例
Feb 03 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
Jun 06 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
PHP7 新特性详细介绍
2016/09/06 PHP
制作特殊字的脚本
2006/06/26 Javascript
js onpropertychange输入框 事件获取属性
2009/03/26 Javascript
多引号嵌套的变量命名的问题
2014/05/09 Javascript
JavaScript设计模式之适配器模式介绍
2014/12/28 Javascript
javascript使用输出语句实现网页特效代码
2015/08/06 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
2016/03/11 Javascript
AngularJs 弹出模态框(model)
2016/04/07 Javascript
Angularjs使用指令做表单校验的方法
2017/03/31 Javascript
详解如何将angular-ui的图片轮播组件封装成一个指令
2017/05/09 Javascript
vue中用H5实现文件上传的方法实例代码
2017/05/27 Javascript
vue+ElementUI实现订单页动态添加产品数据效果实例代码
2017/07/13 Javascript
JS实现元素上下左右移动效果
2017/10/18 Javascript
vue中当图片地址无效的时候,显示默认图片的方法
2018/09/18 Javascript
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
微信小程序API—获取定位的详解
2019/04/30 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
vue中父子组件传值,解决钩子函数mounted只运行一次的操作
2020/07/27 Javascript
JavaScript如何实现防止重复的网络请求的示例
2021/01/28 Javascript
[42:20]2014 DOTA2华西杯精英邀请赛5 24 DK VS NewBee
2014/05/25 DOTA
列举Python中吸引人的一些特性
2015/04/09 Python
python实现的守护进程(Daemon)用法实例
2015/06/02 Python
python实现批量解析邮件并下载附件
2018/06/19 Python
python解决字符串倒序输出的问题
2018/06/25 Python
django框架之cookie/session的使用示例(小结)
2018/10/15 Python
使用pytorch完成kaggle猫狗图像识别方式
2020/01/10 Python
HealthElement海外旗舰店:新西兰大卖场
2018/02/23 全球购物
智能家居、吸尘器、滑板车、电动自行车网上购物:Geekmaxi
2021/01/18 全球购物
广州某公司软件工程师面试题
2014/12/22 面试题
中专自我鉴定
2014/02/05 职场文书
写好自荐信需做到的5要点
2014/03/07 职场文书
领导接待方案
2014/03/13 职场文书
党的群众路线对照检查材料
2014/08/27 职场文书
python使用pymysql模块操作MySQL
2021/06/16 Python