PHP - substr() 函数



PHP 的 substr() 函数用于从给定的字符串中提取一部分字符串,并将该提取的(子部分)字符串作为新字符串返回。

它接受两个可选参数 startlength。以下是列出的重要要点

  • 如果 start 为正数,则返回的字符串将从 start 位置开始(从 0 开始)。
  • 如果 start 为负数,则返回的字符串将从字符串末尾的指定位置开始。
  • 如果字符串长度小于 start 参数值,则将返回空字符串。

以下是关于 length 参数的关键要点:

  • 如果 length 为正数,则返回的字符串将包含从“start”参数开始的那么多字符。
  • 如果 length 为负数,则将从字符串末尾省略那么多字符。
  • 如果 length 给定且为 0,则将返回空字符串。
  • 如果省略 length 或为“null”,则子字符串将从“start”位置开始,并继续到字符串的末尾。

注意:您不能向其传递单个 length 参数,它将始终将其视为提取字符串的起始位置,而不是长度。

语法

以下是 PHP substr() 函数的语法:

substr(string $str, int $start, int $length): string

参数

此函数接受三个参数,如下所示:

  • str - 指定输入字符串。
  • start - 指定字符串提取应从何处开始。
  • length - 指定要提取的新字符串的长度。

返回值

此函数返回原始字符串的一部分字符串。

示例 1

如果给定 start 参数且为 正数,则 PHP substr() 函数从给定的“start index”开始提取字符串,并继续到字符串的末尾:

<?php
   $str = "Tutorialspoint";
   echo "The given string is: $str";
   $start = 2;
   echo "\nThe extraction will start at: $start";
   echo "\nThe extracted string is: ";
   #using substr() function
   echo substr($str, $start);
?>

输出

以上程序产生以下输出:

The given string is: Tutorialspoint
The extraction will start at: 2
The extracted string is: torialspoint

示例 2

如果同时给出 startlength 参数且均为 正数,则此函数从给定的“start index”开始提取字符串,并继续到给定的长度:

<?php
   $str = "Hey!, I Love PHP!";
   echo "The given string is: $str";
   $start = 6;
   $length = 10;
   echo "\nThe extraction will start at: $start";
   echo "\nThe length of the extracted string: $length";
   echo "\nThe extracted string is: ";
   #using substr() function
   echo substr($str, $start, $length);
?>

输出

执行上述程序后,将显示以下输出:

The given string is: Hey!, I Love PHP!
The extraction will start at: 6
The length of the extracted string: 10
The extracted string is: I Love PHP

示例 3

如果给定的长度为 0,则将返回一个 字符串:

<?php
   $str = "Hello World!";
   echo "The given string is: $str";
   $start = 1;
   $length = 0;
   echo "\nThe extraction will start at: $start";
   echo "\nThe length of the extracted string: $length";
   echo "\nThe extracted string is: ";
   #using substr() function
   echo substr($str, $start, $length);
?>

输出

以下是上述程序的输出:

The given string is: Hey, I Love PHP!
The length of the extracted string: 0
The extracting will start at: 1
The extracted string is:

示例 4

如果给定的 start 参数为 负数,则字符串将从字符串“末尾”的指定位置开始:

<?php
   $str = "Hello World";
   echo "The given string is: $str";
   #if you pass start = -1, only "d" will be returned, because no more element to extract,
   #so it will return only d even you pass length as 5
   $start = -5;
   $length = 5;
   echo "\nThe extraction will start at: $start";
   echo "\nThe length of the extracted string: $length";
   echo "\nThe extracted string is: ";
   #using substr() function
   echo substr($str, $start, $length);
?>

输出

执行上述程序后,将显示以下输出:

The given string is: Hello World
The extraction will start at: -5
The length of the extracted string: 5
The extracted string is: World

示例 5

如果给定的长度为 负数,则将从字符串末尾“省略”那么多元素:

<?php
   $str = "Hello From TP!!";
   echo "The given string is: $str";
   $start = 0;
   $length = -3;
   echo "\nThe extraction will start at: $start";
   echo "\nThe length of the extracted string: $length";
   echo "\nThe extracted string is: ";
   #using substr() function
   echo substr($str, $start, $length);
?>

输出

上述程序生成以下输出:

The extraction will start at: 0
The length of the extracted string: -3
The extracted string is: Hello From T

示例 6

如果省略了“length”参数,则字符串将从指定的 start index 开始,并继续提取到给定字符串的“末尾”:

<?php
   $str = "Hey!, Welcome to TP";
   echo "The given string is: $str";
   $start = 6;
   echo "\nThe extraction will start at: $start";
   echo "\nThe extracted string is: ";
   #using substr() function
   echo substr($str, $start);
?>

输出

这将产生以下结果:

The given string is: Hey!, Welcome to TP
The extraction will start at: 6
The extracted string is: Welcome to TP

示例 7

如果字符串“length”小于 start 参数值,则将返回一个 字符串:

<?php
   $str = "I Love Coding!";
   echo "The given string is: $str";
   #an empty string will be returned because start > string length
   $start = 20;
   echo "\nThe extraction will start at: $start";
   echo "\nThe extracted string is: ";
   #using substr() function
   echo substr($str, $start);
?>

输出

以下是上述程序的输出:

The given string is: I Love Coding!
The extraction will start at: 20
The extracted string is:
php_function_reference.htm
广告