PHP 字符串函数

PHP substr()函数用于字符串的截取,它也是开发过程中最常用的字符串函数之一。

substr() 函数返回由 startlength参数指定的字符串的一部分。 

语法

substr() 函数的语法如下所示。它包含三个参数,其中前两个是必传的参数,一个是可选的参数。

substr( $string, $start, $length )

参数

参数说明必须/可选
string指定要截取的字符串必须

start

字符串截取的开始位置,它具有三个条件:
  • 如果$start是一个正值,那么返回的字符串将从字符串的$start位置开始,从零开始计数。
  • 如果$start是一个负值,那么返回的字符串将从字符串末尾的$start位置开始。在这种情况下,字符串末尾的开始位置为-1,而不是从零开始。
  • 如果$string的大小小于 $start 值,那么它将返回 FALSE。
必须
length

此参数用于截取字符串的长度。它具有以下条件:

  • 如果$length为正,则返回截取的字符串长度为$length。
  • 如果$length为负,该情况相对来说使用的较少,则截取的字符串是从$start位置开始到负的$length位置结束(见例2),比如substr("Hello yxjc123", -6, -1),从负6位置开始(x)到负1位置结束(3), 则返回xjc12。
  • 如果$length参数中传入的值是零,FALSE 或 NULL,则返回一个空字符串(见例3)。
  • 如果没有传递 $length 参数,则 substr( ) 函数将返回一个从 $start 到字符串结尾的字符串。
可选

返回值

substr() 函数返回截取成功的字符串部分内容。否则,失败时返回 FALSE 或空字符串。

注意

PHP4及以上版本支持此函数。

更新日志

  • 在 PHP 7.0.0 中,如果 $string 等于 $start,则 substr()函数返回一个空字符串。在这个版本之前,这种情况下返回FALSE。
  • 在PHP 5.2.2 - PHP 5.2.6中,如果$start参数表示负截断的位置或超出的位置,则返回FALSE,而其他版本从 $start 获取字符串。

例子

下面给出了一些示例,通过这些示例我们可以了解substr()函数的用法。让我们看看下面的示例

示例1

<?php
//起始位置为正数
echo substr("Hello yxjc123", 3). "</br>";
echo substr("Hello yxjc123", 0). "</br>";
echo substr("Hello yxjc123", 9). "</br>";

//起始位置为负数
echo substr("Hello yxjc123", -4). "</br>";
echo substr("Hello yxjc123", -10). "</br>";
echo substr("Hello yxjc123", -16). "</br>";
?>

输出:

lo yxjc123
Hello yxjc123
c123
c123
lo yxjc123
Hello yxjc123

示例2

<?php
//通过同时传递 $start 和 $length 参数
echo substr("Hello yxjc123", 3, 8). "</br>";
echo substr("Hello yxjc123", 0, 9). "</br>";
echo substr("Hello yxjc123", 6, -4). "</br>";

echo substr("Hello yxjc123", 4, -7). "</br>";
echo substr("Hello yxjc123", -6, -1). "</br>";
echo substr("Hello yxjc123", -6, -10). "</br>";
?>

输出:

lo yxjc1
Hello yxj
yxj
o
xjc12

示例3

<?php
//通过在 $length 参数中传递0
echo substr("Hello yxjc123", 7, 0). "</br>";
?>

输出:


当一个在 $length 中传递零或 Null 值,substr() 函数将返回一个空字符串。