在线文档教程
PHP

substr

substr

(PHP 4, PHP 5, PHP 7)

substr - 返回字符串的一部分

描述

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

返回由start和length参数指定的字符串部分。

参数

string

输入字符串。必须是一个或更多字符。

start

如果start是非负数,则返回的字符串将从字符串的起始位置开始,从零开始计数。 例如,在字符串'abcdef'中,位置0处的字符是'a',位置2处的字符是'c',等等。

如果start是负数,则返回的字符串将从字符串末尾的第start个字符处开始。

如果字符串长度小于起始字符,则返回FALSE。

示例#1 使用负数 start

<?php $rest = substr("abcdef", -1    // returns "f" $rest = substr("abcdef", -2    // returns "ef" $rest = substr("abcdef", -3, 1 // returns "d" ?>

length

如果给出长度length并且是正数,则返回的字符串将包含至多从起始处开始的长度字符(取决于字符串的长度)。

如果给出了长度length并且是负数,那么从字符串的末尾将省略很多字符(在起始为负数时计算起始位置之后)。 如果start表示此截断的位置或更远,则将返回FALSE。

如果length给出并且为0FALSE或者NULL,将返回一个空字符串。

如果length省略,start则将返回从字符串开始直到结束的子字符串。

示例#2 使用负数 length

<?php $rest = substr("abcdef", 0, -1  // returns "abcde" $rest = substr("abcdef", 2, -1  // returns "cde" $rest = substr("abcdef", 4, -4  // returns false $rest = substr("abcdef", -3, -1 // returns "de" ?>

返回值

返回string提取的部分; 或失败时返回FALSE,或返回空字符串。

更新日志

描述
7.0.0如果字符串等于起始字符长度,则会返回空字符串。在此版本之前,在这种情况下返回了FALSE。
5.2.2 - 5.2.6如果start参数指示负截断或超出的位置,则返回false。其他版本从头开始获取字符串。

例子

Example#3 基本的substr()用法

<?php echo substr('abcdef', 1     // bcdef echo substr('abcdef', 1, 3  // bcd echo substr('abcdef', 0, 4  // abcd echo substr('abcdef', 0, 8  // abcdef echo substr('abcdef', -1, 1 // f // Accessing single characters in a string // can also be achieved using "square brackets" $string = 'abcdef'; echo $string[0];                 // a echo $string[3];                 // d echo $string[strlen($string)-1]; // f ?>

Example#4 substr()投射行为

<?php class apple {     public function __toString() {         return "green";     } } echo "1) ".var_export(substr("pear", 0, 2), true).PHP_EOL; echo "2) ".var_export(substr(54321, 0, 2), true).PHP_EOL; echo "3) ".var_export(substr(new apple(), 0, 2), true).PHP_EOL; echo "4) ".var_export(substr(true, 0, 1), true).PHP_EOL; echo "5) ".var_export(substr(false, 0, 1), true).PHP_EOL; echo "6) ".var_export(substr("", 0, 1), true).PHP_EOL; echo "7) ".var_export(substr(1.2e3, 0, 4), true).PHP_EOL; ?>

上述PHP 7输出示例:

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

上面的例子在PHP 5中输出:

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

错误/异常

错误时返回FALSE

<?php var_dump(substr('a', 2) // bool(false) ?>

扩展内容

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

  • substr_replace() - 替换字符串的一部分中的文本

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

  • trim() - 从字符串的开头和结尾去除空白字符(或其他字符)

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

  • wordwrap() - 将字符串包装为给定数量的字符

  • 按字符访问和修改字符串

← substr_replace

trim →