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 相关文章推荐
php5数字型字符串加解密代码
Apr 24 PHP
php生成数组的使用示例 php全组合算法
Jan 16 PHP
php中sprintf与printf函数用法区别解析
Feb 17 PHP
PHP中使用sleep函数实现定时任务实例分享
Aug 21 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
Aug 23 PHP
Yii中CGridView关联表搜索排序方法实例详解
Dec 03 PHP
php文件上传你必须知道的几点
Oct 20 PHP
Linux环境下php实现给网站截图的方法
May 03 PHP
php格式化json函数示例代码
May 12 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
Feb 10 PHP
PHP面向对象程序设计之构造方法和析构方法详解
Jun 13 PHP
jQuery+PHP实现图片上传并提交功能
Jul 27 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
一个简易需要注册的留言版程序
2006/10/09 PHP
使用php判断浏览器的类型和语言的函数代码
2013/02/28 PHP
PHP超全局数组(Superglobals)介绍
2015/07/01 PHP
使用Post提交时须将空格转换成加号的解释
2013/01/14 Javascript
浅析用prototype定义自己的方法
2013/11/14 Javascript
百度判断手机终端并自动跳转js代码及使用实例
2014/06/11 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
jQuery CSS3自定义美化Checkbox实现代码
2016/05/12 Javascript
JQuery点击事件回到页面顶部效果的实现代码
2016/05/24 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
2016/05/24 Javascript
BOM之navigator对象和用户代理检测
2017/02/10 Javascript
基于Angularjs+mybatis实现二级评论系统(仿简书)
2017/02/13 Javascript
jquery仿京东侧边栏导航效果
2017/03/02 Javascript
Bootstrap模态框插件使用详解
2017/05/11 Javascript
如何在微信小程序中实现Mixins方案
2019/06/20 Javascript
vue cli3适配所有端方案的实现
2020/04/13 Javascript
vue实现数字滚动效果
2020/06/29 Javascript
js实现右键弹出自定义菜单
2020/09/08 Javascript
[01:21]DOTA2周边文化主题展 神秘商店火热开售
2017/07/30 DOTA
Python 列表list使用介绍
2014/11/30 Python
python生成随机mac地址的方法
2015/03/16 Python
详解duck typing鸭子类型程序设计与Python的实现示例
2016/06/03 Python
Python的网络编程库Gevent的安装及使用技巧
2016/06/24 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
基于随机梯度下降的矩阵分解推荐算法(python)
2018/08/31 Python
Keras之fit_generator与train_on_batch用法
2020/06/17 Python
利用HTML5的新特点实现图片文件异步上传
2014/05/29 HTML / CSS
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
大学同学聚会邀请函
2014/01/19 职场文书
小学社会实践活动总结
2014/07/03 职场文书
趣味运动会广播稿
2014/09/13 职场文书
2014年学校党建工作总结
2014/11/11 职场文书
2016高一新生军训心得体会
2016/01/11 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
关于Spring配置文件加载方式变化引发的异常详解
2022/01/18 Java/Android