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+javascript实现二级级联菜单的制作
May 06 PHP
PHP开发中四种查询返回结果分析
Jan 02 PHP
PHP 提取图片img标记中的任意属性的简单实例
Dec 10 PHP
ThinkPHP3.1新特性之对分组支持的改进与完善概述
Jun 19 PHP
PHP判断字符串长度的两种方法很实用
Sep 22 PHP
PHP Smarty模版简单使用方法
Mar 30 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
Apr 11 PHP
php实现按天数、星期、月份查询的搜索框
May 02 PHP
php处理json格式数据经典案例总结
May 19 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
Feb 08 PHP
PHP PDOStatement::setFetchMode讲解
Feb 03 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 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
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
php文件服务实现虚拟挂载其他目录示例
2014/04/17 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
jquery1.83 之前所有与异步列队相关的模块详细介绍
2012/11/13 Javascript
jQuery实用基础超详细介绍
2013/04/11 Javascript
浅谈JavaScript函数参数的可修改性问题
2013/12/05 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
javascript计时器事件使用详解
2014/01/07 Javascript
jQuery+ajax实现无刷新级联菜单示例
2015/05/21 Javascript
JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
2015/06/19 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
Bootstrap零基础入门教程(二)
2016/07/18 Javascript
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
js正则表达式校验指定字符串的方法
2018/07/23 Javascript
vue以组件或者插件的形式实现throttle或者debounce
2019/05/22 Javascript
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
js仿360开机效果
2019/12/26 Javascript
JavaScript数组去重实现方法小结
2020/01/17 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
Python实现对特定列表进行从小到大排序操作示例
2019/02/11 Python
使用Python实现Wake On Lan远程开机功能
2020/01/22 Python
pytorch进行上采样的种类实例
2020/02/18 Python
python计算Content-MD5并获取文件的Content-MD5值方式
2020/04/03 Python
Pycharm激活方法及详细教程(详细且实用)
2020/05/12 Python
如何表示python中的相对路径
2020/07/08 Python
找到不普通的东西:Bonanza
2016/10/20 全球购物
英国最大的滑板品牌选择:Route One
2019/09/22 全球购物
文案策划求职信
2014/04/14 职场文书
媒体宣传策划方案
2014/05/25 职场文书
ktv好的活动方案
2014/08/17 职场文书
公务员年度考核个人总结
2015/02/12 职场文书
党员自我评价范文2015
2015/03/03 职场文书
招商银行收入证明
2015/06/17 职场文书