php字符串截取函数mb_substr用法实例分析

 更新时间:2019年06月25日 09:34:43   作者:金三国  
这篇文章主要介绍了php字符串截取函数mb_substr用法,结合实例形式分析了php使用mb_substr针对中文字符串截取与编码控制相关操作技巧,需要的朋友可以参考下

本文实例讲述了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字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

  • PHP操作Memcache实例介绍

    PHP操作Memcache实例介绍

    memcache可以保存的数据:字符串,数值,数组,对象,下面为大家介绍下如何使用PHP操作Memcache,不会的朋友可以参考下哈
    2013-06-06
  • php运用memcache的完整实例

    php运用memcache的完整实例

    这篇文章主要给大家介绍了关于php运用memcache的完整实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • php计算税后工资的方法

    php计算税后工资的方法

    这篇文章主要介绍了php计算税后工资的方法,涉及php流程控制及数学运算的相关技巧,比较简单实用,需要的朋友可以参考下
    2015-07-07
  • win10 apache配置虚拟主机后localhost无法使用的解决方法

    win10 apache配置虚拟主机后localhost无法使用的解决方法

    这篇文章主要为大家详细介绍了win10 apache配置虚拟主机后localhost无法使用的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • php+mysql+ajax实现单表多字段多关键词查询的方法

    php+mysql+ajax实现单表多字段多关键词查询的方法

    这篇文章主要介绍了php+mysql+ajax实现单表多字段多关键词查询的方法,涉及php基于ajax的数据库查询、表格操作等相关技巧,需要的朋友可以参考下
    2017-04-04
  • 浅析PHP如何并行异步处理HTTP请求

    浅析PHP如何并行异步处理HTTP请求

    在 PHP 中,由于其传统的同步阻塞模型,实现并行异步处理 HTTP 请求并不像其他语言那样直接,但也可以通过一些扩展和工具来实现,下面小编就来讲讲具体实现方法吧
    2025-02-02
  • php函数实现判断是否移动端访问

    php函数实现判断是否移动端访问

    本文给大家分享的是一则php判断是否移动端访问的函数,是之前收藏的,这里发出来,推荐给小伙伴们。
    2015-03-03
  • PHP面向对象法则

    PHP面向对象法则

    你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起
    2012-02-02
  • Win下如何安装PHP的APC拓展

    Win下如何安装PHP的APC拓展

    这篇教程我们会告诉大家如何在windows上安装APC。我已经在windows server 2003上成功测试。当然,在你也可以使用windows xp做为测试服务器
    2013-08-08
  • php数组函数序列之array_search()- 按元素值返回键名

    php数组函数序列之array_search()- 按元素值返回键名

    array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false
    2011-11-11

最新评论