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
给出并且为0
、FALSE
或者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 →