当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PHP String substr_compare()用法及代码示例


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_compare() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。