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