首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

substr

(PHP 4, PHP 5, PHP 7)

substr - 返回字符串的一部分

描述

代码语言:javascript
复制
string substr ( string $string , int $start [, int $length ] )

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

参数

string

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

start

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

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

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

示例#1 使用负数 start

代码语言:javascript
复制
<?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

代码语言:javascript
复制
<?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()用法

代码语言:javascript
复制
<?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()投射行为

代码语言:javascript
复制
<?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输出示例:

代码语言:javascript
复制
1) 'pe'
2) '54'
3) 'gr'
4) '1'
5) ''
6) ''
7) '1200'

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

代码语言:javascript
复制
1) 'pe'
2) '54'
3) 'gr'
4) '1'
5) false
6) false
7) '1200'

错误/异常

错误时返回FALSE

代码语言:javascript
复制
<?php
var_dump(substr('a',?2));?//?bool(false)
?>

扩展内容

  • strrchr() - 查找字符串中最后一次出现的字符
  • substr_replace() - 替换字符串的一部分中的文本
  • preg_match() - 执行正则表达式匹配
  • trim() - 从字符串的开头和结尾去除空白字符(或其他字符)
  • mb_substr() - 获取字符串的一部分
  • wordwrap() - 将字符串包装为给定数量的字符
  • 按字符访问和修改字符串

← substr_replace

trim →

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com