PHP String substr_compare()函数
substr_compare()是PHP的内置函数,用于比较两个字符串的指定起始位置到指定结束位置。该函数是一个 二进制安全 的函数,还可以选择 区分大小写 。PHP 5及以上版本支持此函数。
语法
substr_compare()函数的语法如下所示。
substr_compare( String main_str, Stringstr, int start_pos, int length, Boolean case-insensitivity = FALSE)
这个函数由五个参数组成,其中三个是必需的,另外两个是可选的。下面是这些参数的描述:
参数
$main_str (必选): 这是这个函数的主字符串参数,需要进行比较。这是一个必需参数。
$str (必选): 这是这个函数的第二个字符串参数,用来进行比较。和$main_str
一样,这也是一个必需参数。
$start_pos (必选): 这是一个必需参数,它具有一个整数值。这个参数指定了在$main_str
中从哪个位置开始比较$str。换句话说,它提供了比较的起始位置。
如果传递的值是负数,则从字符串的末尾开始比较。
$length (可选): 这个参数在这个函数中不是必须传递的。它表示比较的长度,也就是指定了要比较$str的多少部分。
$case-insensitivity (可选): 这个参数包含一个布尔值,指定是否执行大小写不敏感的比较。它和$length
一样,是一个可选参数。如果$case-insensitivity
是 TRUE 的话,那么比较将是大小写不敏感的。
- FALSE – 大小写敏感(默认值)
- TRUE – 大小写不敏感
返回值
这个函数返回以下值:
返回 0 – 如果给定的两个字符串相等。
**返回 < 0 – ** 如果$main_str
(从起始位置)小于$str
。
**返回 > 0 – ** 如果$main_str
(从起始位置)大于$str
。
注意: 如果$length
参数值等于或大于主字符串($main_str
)的长度,那么这个函数会显示一个警告并返回FALSE。
变更日志
版本 | 描述 |
---|---|
PHP 5.1.0 | 可以使用负的 start_pos。 |
PHP 5.5.11 | $length 现在可以为0。 |
PHP 7.2.18, 7.3.5 | $start_pos 可能等于主字符串 ($main_str ) 的长度。 |
示例
以下给出了一些示例,以了解substr_compare()函数的工作方式。
示例1
在下面的示例中,我们在该函数中传递了3个必需的参数。让我们看看substr_compare()在三个参数下的工作情况。
<?php
main_str = "Good health Good life.";string2 = "Good health Good life.";
// both strings are equal to each other.
echo substr_compare(main_str,string2, 0). "</br>";
// the main string is 11 chracters greater than string2 including whitespace.
echo substr_compare(main_str, "Good health", 0). "</br>";
// the main string is 5 characters shorter than string2 including whitespace.
echo substr_compare(main_str, "Good health Good life. Good", 0). "</br>";
?>
输出:
0
11
-5
示例2
<?php
// main strting is greater than the second string.
echo substr_compare("Hello javaTpoint","Hello", 0). "</br>";
// both strings are equal, as comparison start at 6th position.
echo substr_compare("Hello javaTpoint","javaTpoint", 6). "</br>";
// main string and next comparable string are not same, so it will return -1
echo substr_compare("Hello javaTpoint","hie", 0). "</br>";
?>
输出:
11
0
-1
示例3
<?php
// both strings are equal from position 0 to 4.
echo substr_compare("Hello javaTpoint","Hello", 0, 4). "</br>";
// second string is not found between 6 to 10 position, because by default it is case-sensitive.
echo substr_compare("Hello javaTpoint","JAVATPOINT", 6, 10). "</br>";
//As Hello is present in the string, but not found between 5 to 14 range.
echo substr_compare("Hello javaTpoint","Hello", 5, 14). "</br>";
?>
输出:
0
1
-1
示例4: 大小写敏感/不敏感
在下面的示例中,我们传递了该函数的所有五个参数。让我们通过所有参数来看substr_compare()的工作原理。
<?php
main_str = "Good health Good life.";string2 = "Good health Good life.";
case_insensitivity = FALSE;
// here, this function works as case-insensitive
echo substr_compare(main_str, string2, 0, 9, TRUE). "</br>";
// here, this function case-sensitive echo substr_compare(main_str, "GOOD Health", 0, 11, case_insensitivity). "</br>";
//the function works as case-insensitive
echo substr_compare(main_str, "GOOD health", 0, 11, TRUE). "</br>";
?>
输出:
0
1
0