當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。