substr 返回字符串的子串

发表日期:2021-07-01 10:23:26 | 来源: | | 浏览(2038) 分类:字符串 函数

substr

(PHP 4, PHP 5, PHP 7, PHP 8)

substr返回字符串的子串

说明

substr(string $string, int $start, int $length = ?): string

返回字符串 stringstartlength 参数指定的子字符串。

参数


  • string

  • 输入字符串。必须至少有一个字符。

  • start

  • 如果 start 是非负数,返回的字符串将从 stringstart 位置开始,从 0 开始计算。例如,在字符串 “abcdef” 中,在位置 0 的字符是 “a”,位置 2 的字符串是 “c” 等等。

    如果 start 是负数,返回的字符串将从 string 结尾处向前数第 start 个字符开始。

    如果 string 的长度小于 start,将返回 false


    示例 #1 使用负数 start

    1<?php 
    2$rest substr("abcdef", -1);
    3    // 返回 "f"$rest = substr("abcdef", -2);
    4    // 返回 "ef"$rest = substr("abcdef", -3, 1);
    5 // 返回 "d"?>


  • length

  • 如果提供了正数的 length,返回的字符串将从 start 处开始最多包括 length 个字符(取决于 string 的长度)。

    如果提供了负数的 length,那么 string 末尾处的 length 个字符将会被省略(若 start 是负数则从字符串尾部算起)。如果 start 不在这段文本中,那么将返回 false

    如果提供了值为 0falsenulllength,那么将返回一个空字符串。

    如果没有提供 length,返回的子字符串将从 start 位置开始直到字符串结尾。

    示例 #2 使用负数 length

    1<?php 
    2$rest substr("abcdef", 0, -1);
    3  // 返回 "abcde"$rest = substr("abcdef", 2, -1);
    4  // 返回 "cde"$rest = substr("abcdef", 4, -4);
    5  // 返回 ""$rest = substr("abcdef", -3, -1);
    6 // 返回 "de"?>


返回值

返回提取的子字符串, 或者在失败时返回 false

更新日志


版本说明
7.0.0如果 string 的字符串长度与start 相同时将返回一个空字符串。在之前的版本中,这种情况将返回  false
5.2.2 - 5.2.6If the start parameter indicates the position of        a negative truncation or beyond, false is returned. Other versions get        the string from start.


范例


示例 #3 substr() 基本用法

01<?php 
02echo substr('abcdef', 1);
03// bcdefecho substr('abcdef', 1, 3);
04// bcdecho substr('abcdef', 0, 4);
05// abcdecho substr('abcdef', 0, 8);
06// abcdefecho substr('abcdef', -1, 1);
07// f// 访问字符串中的单个字符
08// 也可以使用中括号
09$string 'abcdef';
10echo $string[0];
11// aecho $string[3];
12// decho $string[strlen($string)-1];
13// f
14?>

示例 #4 substr() casting behaviour

01<?php 
02class apple {
03    public function __toString() {
04        return "green";
05    }
06}
07echo "1) ".var_export(substr("pear", 0, 2), true).PHP_EOL;
08echo "2) ".var_export(substr(54321, 0, 2), true).PHP_EOL;
09echo "3) ".var_export(substr(new apple(), 0, 2), true).PHP_EOL;
10echo "4) ".var_export(substr(true, 0, 1), true).PHP_EOL;
11echo "5) ".var_export(substr(false, 0, 1), true).PHP_EOL;
12echo "6) ".var_export(substr("", 0, 1), true).PHP_EOL;
13echo "7) ".var_export(substr(1.2e3, 0, 4), true).PHP_EOL;
14?>

以上例程在 PHP 7 中的输出:

1) 'pe'
2) '54'
3) 'gr'
4) '1'
5) false
6) false
7) '1200'

以上例程在 PHP 5 中的输出:

1) 'pe'
2) '54'
3) 'gr'
4) '1'
5) false
6) false
7) '1200'


错误/异常

错误时返回 false

1<?php 
2var_dump(substr('a', 2));
3 // bool(false)
4?>


参见


  • strrchr() - 查找指定字符在字符串中的最后一次出现

  • substr_replace() - 替换字符串的子串

  • preg_match() - 执行匹配正则表达式

  • trim() - 去除字符串首尾处的空白字符(或者其他字符)

  • mb_substr() - 获取部分字符串

  • wordwrap() - 打断字符串为指定数量的字串

  • 字符串访问和修改


集速网 copyRight © 2015-2022 宁ICP备15000399号-1 宁公网安备 64010402001209号
与其临渊羡鱼,不如退而结网
欢迎转载、分享、引用、推荐、收藏。