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者的疑难问答(1)
Oct 09 PHP
php cli 小技巧
Jun 03 PHP
php阿拉伯数字转中文人民币大写
Dec 21 PHP
PHP会话操作之cookie用法分析
Sep 28 PHP
PHP中CheckBox多选框上传失败的代码写法
Feb 13 PHP
CakePHP框架Model函数定义方法示例
Aug 04 PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 PHP
php利用ob_start()清除输出和选择性输出的方法
Jan 18 PHP
php实现有序数组旋转后寻找最小值方法
Sep 27 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
Jun 14 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
Oct 04 PHP
PHP实现腾讯短网址生成api接口实例
Dec 08 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
终于听上了直流胆调频
2021/03/02 无线电
截获网站title标签之家内容的例子
2006/10/09 PHP
使用YUI+Ant 实现JS CSS压缩
2014/09/02 PHP
php实现解析xml并生成sql语句的方法
2018/02/03 PHP
实用javaScript技术-屏蔽类
2006/08/15 Javascript
node.js使用nodemailer发送邮件实例
2014/03/10 Javascript
谈谈impress.js初步理解
2015/09/09 Javascript
jQuery使用cookie与json简单实现购物车功能
2016/04/15 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
2016/11/29 Javascript
js仿iphone秒表功能 计算平均数
2017/01/11 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
JS实现按钮添加背景音乐示例代码
2017/10/17 Javascript
使用 vue.js 构建大型单页应用
2018/02/10 Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
2018/07/11 Javascript
vue-cli3配置与跨域处理方法
2019/08/17 Javascript
layui复选框限制选择个数的方法
2019/09/18 Javascript
[43:43]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第一场 11.22
2020/11/24 DOTA
numpy数组拼接简单示例
2017/12/15 Python
python合并同类型excel表格的方法
2018/04/01 Python
python用BeautifulSoup库简单爬虫实例分析
2018/07/30 Python
在python中实现对list求和及求积
2018/11/14 Python
Python线性拟合实现函数与用法示例
2018/12/13 Python
Django model反向关联名称的方法
2018/12/15 Python
使用python读取.text文件特定行的数据方法
2019/01/28 Python
Python selenium爬虫实现定时任务过程解析
2020/06/08 Python
CSS3点击按钮实现背景渐变动画效果
2016/10/19 HTML / CSS
介绍一下如何优化MySql
2016/12/20 面试题
使用Vue.js和MJML创建响应式电子邮件
2021/03/23 Vue.js
家长会学生家长演讲稿
2013/12/29 职场文书
超市促销活动方案
2014/03/05 职场文书
村干部培训班主持词
2014/03/28 职场文书
2015年元旦标语大全
2014/12/09 职场文书
2015年教研工作总结
2015/05/23 职场文书
寒假生活随笔
2015/08/15 职场文书
宪法宣传标语100条
2019/10/15 职场文书
threejs太阳光与阴影效果实例代码
2022/04/05 Javascript