substr_compare() 是 PHP 的 内置 函数,它有助于比较两个字符串从指定的开始位置到指定的结束位置。此函数是二进制安全函数,并且可以选择区分大小写。 PHP 5 及以上版本支持此函数。
用法
substr_compare() 函数的语法如下。
substr_compare( String $main_str, String $str, int start_pos, int length, Boolean case-insensitivity = FALSE)
它由五个参数组成,其中三个是强制性的,其余两个是可选的。下面是这些参数的说明:
参数
$main_str(必填):该函数需要比较的主要字符串参数。它是一个强制性参数。
$str(必填):这是该函数指定要比较的第二个字符串参数。它也是一个强制性参数,如 main_str。
$start_pos(必填):强制参数,整数值。此参数指定值,从何处开始与 $main_str 中的 $str 进行比较。换句话说, - 它提供了比较的起始位置。
如果传递的值为负,则从字符串的末尾开始比较。
$length(可选):这个参数不是必须传入这个函数的。它包含比较的长度,这意味着它指定要比较的 $str 数量。
$大小写敏感ity(可选):该参数包含布尔值,用于指定是否进行区分大小写的比较。它是一个可选参数,如 $length。如果不区分大小写为 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
相关用法
- PHP String substr_count()用法及代码示例
- PHP String substr_replace()用法及代码示例
- PHP String substr()用法及代码示例
- PHP String sprintf()用法及代码示例
- PHP String strtr()用法及代码示例
- PHP String strtolower()用法及代码示例
- PHP String strspn()用法及代码示例
- PHP String strtoupper()用法及代码示例
- PHP String strtok()用法及代码示例
- PHP String strstr()用法及代码示例
- PHP String str_replace()用法及代码示例
- PHP String sscanf()用法及代码示例
- PHP String strrpos()用法及代码示例
- PHP String wordwrap()用法及代码示例
- PHP String ucwords()用法及代码示例
- PHP String localeconv()用法及代码示例
- PHP String quoted_printable_encode()用法及代码示例
- PHP String ucfirst()用法及代码示例
- PHP String nl2br()用法及代码示例
- PHP String vsprintf()用法及代码示例
注:本文由纯净天空筛选整理自 PHP String substr_compare() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。