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与数据库代码开发规范
Aug 08 PHP
php生成图形验证码几种方法小结
Aug 15 PHP
php实现的替换敏感字符串类实例
Sep 22 PHP
一个经典实用的PHP图像处理类分享
Nov 18 PHP
php面象对象数据库操作类实例
Dec 02 PHP
win7安装php框架Yii的方法
Jan 25 PHP
PHP类和对象相关系统函数与运算符小结
Sep 28 PHP
php判断是否连接上网络的方法实例详解
Dec 14 PHP
PHP截取发动短信内容的方法
Jul 04 PHP
php数组遍历类与用法示例
May 24 PHP
php写app用的框架整理
Sep 29 PHP
基于PHP实现堆排序原理及实例详解
Jun 19 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 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
写出高质量的PHP程序
2012/02/04 PHP
关于php循环跳出的问题
2013/07/01 PHP
php cookie名使用点号(句号)会被转换
2014/10/23 PHP
laravel-admin的图片删除实例
2019/09/30 PHP
jquery的$(document).ready()和onload的加载顺序
2010/05/26 Javascript
javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同
2010/06/25 Javascript
收集的一些Array及String原型对象的扩展实现代码
2010/12/05 Javascript
JavaScript实现QueryString获取GET参数的方法
2013/07/02 Javascript
jquery select多选框的左右移动 具体实现代码
2013/07/03 Javascript
Jquery.Form 异步提交表单的简单实例
2014/03/03 Javascript
jquery操作 iframe的方法
2014/12/03 Javascript
轻松创建nodejs服务器(5):事件处理程序
2014/12/18 NodeJs
javascript自动生成包含数字与字符的随机字符串
2015/02/09 Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
2020/03/30 Javascript
jQuery Mobile动态刷新页面样式的实现方法
2016/05/28 Javascript
利用vue写todolist单页应用
2016/12/15 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
2016/12/31 Javascript
图片懒加载插件实例分享(含解析)
2017/01/09 Javascript
Angular2里获取(input file)上传文件的内容的方法
2017/09/05 Javascript
vue实现登陆登出的实现示例
2017/09/15 Javascript
你准备好迎接vue3.0了吗
2020/04/28 Javascript
vue数据更新UI不刷新显示的解决办法
2020/08/06 Javascript
Vue.js暴露方法给WebView的使用操作
2020/09/07 Javascript
详解C++编程中一元运算符的重载
2016/01/19 Python
解决Python出现_warn_unsafe_extraction问题的方法
2016/03/24 Python
python中的字符串内部换行方法
2018/07/19 Python
Python计算信息熵实例
2020/06/18 Python
SKECHERS斯凯奇中国官网:来自美国的运动休闲品牌
2018/11/14 全球购物
软件测试常见笔试题
2012/02/04 面试题
会计与审计毕业生自荐信范文
2013/12/30 职场文书
六十大寿答谢词
2014/01/12 职场文书
品质管理部岗位职责范文
2014/03/01 职场文书
现场活动策划方案
2014/08/22 职场文书
节水宣传标语口号
2015/12/26 职场文书
windows系统搭建WEB服务器详细教程
2022/08/05 Servers