首页 >后端开发 >PHP问题 >php怎么实现中文字符串截取

php怎么实现中文字符串截取

青灯夜游
青灯夜游原创
2021-07-16 20:17:056931浏览

在php中,可以利用mb_substr()函数来截取中文字符串,该函数可以从一个字符串中截取指定的一部分,不仅对英文字符有效,对中文字符同样有效;语法格式“mb_substr($str,$start,$length,$encoding)”。

php怎么实现中文字符串截取

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

mb_substr() 函数可以从一个字符串中截取指定的一部分,与 substr() 函数不同的是,mb_substr() 函数不仅对英文字符有效,对中文字符同样有效,其语法格式如下:

mb_substr($str , $start [, $length = NULL [, $encoding = mb_internal_encoding()]])

参数说明如下:

  • $str:待截取的字符串,字符串中至少包含一个字符;
  • $start:截取字符串的起始位置;
    • 如果 $start 为非负数,那么字符串会从 $str 的第 $start 个字符的位置开始截取;
    • 如果 $start 是负数,那么字符串会从 $str 结尾处向前数第 $start 个字符的位置开始截取。
  • $length:可选参数,表示截取字符串的长度;
    • 如果 $length 为正数,那么字符串将从 $start 位置向后截取最多 $length 个字符;
    • 如果 $length 为负数,那么 $string 末尾的 $length 个字符将会被省略(若 $start 是负数则从字符串尾部算起);
    • 如果 $length 的值 NULL 或者省略 $length,则会截取到字符串的末尾。
  • $encoding:可选参数,表示 $str 的字符编码,如果省略,则使用内部字符编码。

【示例】使用 mb_substr() 函数,截取指定长度的中文字符串。

<?php
    $str = &#39;欢迎访问PHP中文网,一个在线学习编程的网站。&#39;;
    echo mb_substr($str, 4).&#39;<br>&#39;;
    echo mb_substr($str, -19).&#39;<br>&#39;;
    echo mb_substr($str, 4, 6).&#39;<br>&#39;;
    echo mb_substr($str, 4, -16).&#39;<br>&#39;;
    echo mb_substr($str, -19, -13).&#39;<br>&#39;;
    echo mb_substr($str, -19, 6).&#39;<br>&#39;;
    var_dump(mb_substr($str, 40));
    echo &#39;<br>&#39;;
    var_dump(mb_substr($str, 4, null));
?>

运行结果如下:

PHP中文网,一个在线学习编程的网站。
PHP中文网,一个在线学习编程的网站。
PHP中文网
PHP
PHP中文网
PHP中文网
string(0) ""
string(55) "PHP中文网,一个在线学习编程的网站。"

【示例】使用 mb_substr() 函数截取指定长度的字符串,超出的部分使用“...”代替。

<?php
    $str = &#39;PHP中文网是一个在线学习编程的网站,我们发布了多套文字教程,它们都通俗易懂,深入浅出。&#39;;
    if(strlen($str)>18){
        echo mb_substr($str, 0, 18).&#39;...&#39;;
    }else{
        echo $str;
    }
?>

运行结果如下:

PHP中文网是一个在线学习编程的网站...

推荐学习:《PHP视频教程

以上是php怎么实现中文字符串截取的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn