PHP String substr() 函数
substr() 是 PHP 的内置函数,用于提取字符串的一部分。substr() 函数返回由起始位置和长度参数指定的字符串部分。 PHP 4 及以上版本支持该函数。
语法
substr() 函数的语法如下所示。它包含三个参数,其中两个是必需的,一个是可选的。
substr( string,start, $length )
参数
$string (必需) – 这是主字符串参数,指定需要截取或修改的字符串。这是该函数的必选参数。它指定输入的字符串,必须是一个或多个字符。
$start (必需) – 这也是该函数的必选参数,就像$string
一样。它指定从字符串中的哪个位置开始提取。该参数包含一个整数值,有三个条件:
- 如果
$start
具有 正值 ,则返回的字符串将从$startth
位置开始,从零开始计数。 - 如果
$start
具有 负值 ,则返回的字符串将从字符串末尾的$startth
字符开始。在这种情况下,计数从字符串末尾的-1开始而不是从零开始。 - 如果
$string
的大小小于$start
值,则会返回FALSE。$length (可选) – 这是一个整数类型的可选参数。该参数指定要从主字符串中截取的字符串的长度。它有以下条件:
-
如果$length为 正数 ,则返回的字符串将包含以
$length
参数传递的字符数,从$start
开始。 - 如果$length为 负数 ,则从
$start
位置开始,并从字符串末尾提取长度。如果$length
参数中传递的值为负数,则从字符串末尾省略多个字符。 - 如果$length参数的值为 零 、 FALSE 或 NULL ,则返回空字符串(参见示例3)。
- 如果未传递
$length
参数,则substr()函数将返回从$start
开始直到字符串末尾的字符串。
返回值
substr()函数在成功执行时返回字符串的提取部分。否则,在失败时返回FALSE或空字符串。
更新日志
- 在PHP 7.0.0中,如果
$string
等于$start
,则substr()函数返回一个空字符串。在此版本之前,这种情况下返回FALSE。 - 在PHP 5.2.2至PHP 5.2.6中,如果$start参数指示负截断位置或超出范围,则返回FALSE,而其他版本则从
$start
获取字符串。
示例
以下是一些示例,通过这些示例可以了解substr()函数的工作原理。让我们看下面的示例-
示例1
<?php
//Positive value passed in start
echo substr("Hello javaTpoint", 3). "</br>";
echo substr("Hello javaTpoint", 0). "</br>";
echo substr("Hello javaTpoint", 9). "</br>";
//Negative value passed instart
echo substr("Hello javaTpoint", -4). "</br>";
echo substr("Hello javaTpoint", -10). "</br>";
echo substr("Hello javaTpoint", -16). "</br>";
?>
输出:
上述程序的输出如下所示。
lo javaTpoint
Hello javaTpoint
aTpoint
oint
JavaTpoint
Hello javaTpoint
示例2
<?php
//By passing both start andlength parameter
echo substr("Hello javaTpoint", 3, 8). "</br>";
echo substr("Hello javaTpoint", 0, 9). "</br>";
echo substr("Hello javaTpoint", 6, -4). "</br>";
echo substr("Hello javaTpoint", 4, -7). "</br>";
echo substr("Hello javaTpoint", -6, -1). "</br>";
echo substr("Hello javaTpoint", -6, -10). "</br>";
?>
输出:
上述程序的输出如下。
lo javaT
Hello jav
javaTp
o jav
Tpoin
示例3
<?php
//By passing zero in $length parameter
echo substr("Hello javaTpoint", 7, 0). "</br>";
?>
当$length
参数传入0或者Null值时,substr()函数会返回一个空字符串。
No output