首页 >后端开发 >PHP问题 > 正文

php中截取字符串的方法有哪些

原创2021-07-23 19:37:290774

php截取方法:1、使用substr()截取,可以从字符串的指定位置截取一定长度的字符;2、使用mb_substr()截取,该函数可以从一个字符串中截取指定的一部分,不仅对英文字符有效,对中文字符同样有效。

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

1、使用substr()截取字符串

substr() 函数可以从字符串的指定位置截取一定长度的字符,这段被截取的字符可称为“子串”或者“子字符串”,其语法格式如下:

substr($string, $start [, $length])

参数说明如下:

  • $string:需要截取的字符串,该字符串至少含有一个字符;
  • $start:截取字符串的起始位置;
    • 如果 $start 是非负数,那么字符串将从 $string 的第 $start 个字符处开始截取,$start 从 0 开始计算。例如在字符串“abcdef”中,在 0 位置的字符是“a”,在 2 位置的字符串是 “c” 等等;
    • 如果 $start 是负数,那么字符串将从 $string 结尾处向前数第 $start 个字符开始,$start 从 -1 开始计算。例如在字符串“abcdef”中,在 -1 位置的字符是“f”,在 -3 位置的字符是“d”等等;
    • 如果 $string 的长度小于 $start,将返回 FALSE。
  • $length:可选参数,表示截取字符串的长度。
    • 如果 $length 为正数,那么字符串将从 $start 位置向后截取最多 $length 个字符;
    • 如果 $length 为负数,那么 $string 末尾的 $length 个字符将会被省略(若 $start 是负数则从字符串尾部算起);
    • 如果 $length 的值为 0,FALSE 或 NULL,那么将返回一个空字符串;
    • 如果没有提供 $length,那么返回的子字符串将从 $start 位置开始直到字符串的结尾。

示例:使用带有不同正负数的 start 和 length 参数

<?php
echo substr("Hello world",0,10)."<br>";
echo substr("Hello world",1,8)."<br>";
echo substr("Hello world",0,5)."<br>";
echo substr("Hello world",6,6)."<br>";
 
echo substr("Hello world",0,-1)."<br>";
echo substr("Hello world",-10,-2)."<br>";
echo substr("Hello world",0,-6)."<br>";
echo substr("Hello world",-2-3)."<br>";
?>

输出:

Hello worl
ello wor
Hello
world
Hello worl
ello wor
Hello
world

2、使用mb_substr()截取中文字符串

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

运行结果如下:

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

推荐学习:《PHP视频教程

以上就是php中截取字符串的方法有哪些的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 相关标签:php 截取方法
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 专题推荐

    作者信息

    青灯夜游

    今天学习一小步,明天提升一大步

    最近文章
    javascript es6数组方法有哪些382
    charAt()在javascript中怎么用163
    javascript有几种变量870
    推荐视频教程
  • PHP开发基础之字符串篇PHP开发基础之字符串篇
  • php8,我来也php8,我来也
  • 细说PHP(2021版)第一季细说PHP(2021版)第一季
  • 细说PHP(2021版)第二季细说PHP(2021版)第二季
  • 细说PHP(2021版)第三季细说PHP(2021版)第三季
  • 细说PHP(2021版)第四季细说PHP(2021版)第四季
  • 视频教程分类