在PHP中,字符串函数 substr_compare() 用来比较字符串,可以从偏移位置比较指定长度。
函数语法:
substr_compare ( string $main_str , string $str , int $offset [, int $length [, bool $case_insensitivity = FALSE ]] ) : int
函数参数说明:
参数 | 描述 |
---|---|
main_str | 必需。规定要比较的第一个字符串。 |
str | 必需。规定要比较的第二个字符串。 |
offset | 必需。规定在 main_str 中的何处开始比较。如果为负数,则从字符串末端开始计数。 |
length | 可选。规定在 main_str 中参与比较的字符数。 |
case_insensitivity | 可选。一个布尔值,规定是否执行区分大小写的比较:
|
substr_compare() 函数用来比较字符串,可以从指定的偏移位置来比较指定长度的字符串,此函数是二进制安全的。
它的返回值有下面三种情况:
-
< 0:main_str 的子字符串 小于 字符串 str
-
> 0:main_str 的子字符串 大于 字符串 str
-
= 0:两者相等,返回 0
-
如果 offset 大于等于 main_str 的长度或 length 被设置为小于 1 的值( PHP 5.5.11 之前的版本),substr_compare() 将打印出一条警告信息并且返回 FALSE
举例1,两个字符串相等:
<?php // 二进制安全比较字符串(区分大小写) $res = substr_compare('hello world', 'world', 6); // 输出0 echo $res;
以上代码输出如下:
0
举例2,main_str 的子字符串 小于 字符串 str:
<?php // 二进制安全比较子字符串 $res = substr_compare('hello world', 'world', 7); // 输出-1 echo $res;
以上代码输出如下:
-1
举例3,main_str 的子字符串 大于 字符串 str :
<?php // 二进制安全比较子字符串 $res = substr_compare('hello world', 'worl', 6); // 输出1 echo $res;
以上代码输出如下:
1
以上比较,默认是区分大小写的,可以通过最后一个参数case_insensitivity来设置不区分大小写。