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 →
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com