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 相关文章推荐
Adodb的十个实例(清晰版)
Dec 31 PHP
php 特殊字符处理函数
Sep 05 PHP
PHP中函数内引用全局变量的方法
Oct 20 PHP
PHP 数组基础知识小结
Aug 20 PHP
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
Jun 24 PHP
PHP对象相互引用的内存溢出实例分析
Aug 28 PHP
php+redis实现多台服务器内网存储session并读取示例
Jan 12 PHP
PHP implode()函数用法讲解
Mar 08 PHP
phpStorm+XDebug+chrome 配置详解
Apr 01 PHP
php实现大文件断点续传下载实例代码
Oct 01 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
Oct 14 PHP
让whoops帮我们告别ThinkPHP6的异常页面
Mar 02 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
B2K与车机的中波PK
2021/03/02 无线电
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
PHP实现的CURL非阻塞调用类
2018/07/26 PHP
纯css+js写的一个简单的tab标签页带样式
2014/01/28 Javascript
动态载入js提高网页打开速度的方法
2014/07/04 Javascript
jQuery实现的超简单点赞效果实例分析
2015/12/31 Javascript
jquery输入数字随机抽奖特效的简单实现代码
2016/06/10 Javascript
jQuery实现的兼容性浮动层示例
2016/08/02 Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
2018/03/01 Javascript
angular2 组件之间通过service互相传递的实例
2018/09/30 Javascript
jQuery选择器之层次选择器用法实例分析
2019/02/19 jQuery
iview tabs 顶部导航栏和模块切换栏的示例代码
2019/03/04 Javascript
微信小程序事件 bindtap bindinput代码实例
2019/08/26 Javascript
JavaScript 变量,数据类型基础实例详解【变量、字符串、数组、对象等】
2020/01/04 Javascript
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
python 写的一个爬虫程序源码
2016/02/28 Python
Python实现将文本生成二维码的方法示例
2017/07/18 Python
Python正确重载运算符的方法示例详解
2017/08/27 Python
python3使用requests模块爬取页面内容的实战演练
2017/09/25 Python
python自动重试第三方包retrying模块的方法
2018/04/24 Python
python Flask 装饰器顺序问题解决
2018/08/08 Python
Python中最好用的命令行参数解析工具(argparse)
2019/08/23 Python
pytorch 模拟关系拟合——回归实例
2020/01/14 Python
HTML5通过navigator.mediaDevices.getUserMedia调用手机摄像头问题
2020/04/27 HTML / CSS
斯凯奇新西兰官网:SKECHERS新西兰
2018/02/22 全球购物
在线购买世界上最好的酒:BoozeBud
2018/06/07 全球购物
德国最新街头服饰网上商店:BODYCHECK
2019/09/15 全球购物
华为c/c++笔试题
2016/01/25 面试题
师范毕业生自荐信
2013/10/17 职场文书
五年级语文教学反思
2014/01/30 职场文书
项目总经理岗位职责
2014/02/14 职场文书
市场营销专业自荐书
2014/06/10 职场文书
县委常委班子对照检查材料思想汇报
2014/09/28 职场文书
2016学雷锋优秀志愿者事迹材料
2016/02/25 职场文书
导游词之神仙居景区
2019/11/15 职场文书
使用react+redux实现计数器功能及遇到问题
2021/06/02 Javascript