Modified version of the original posted function. Use this one:
<?php
if (!function_exists('substr_compare')) {
function substr_compare($main_str, $str, $offset, $length = NULL, $case_insensitivity = false) {
$offset = (int) $offset;
// Throw a warning because the offset is invalid
if ($offset >= strlen($main_str)) {
trigger_error('The start position cannot exceed initial string length.', E_USER_WARNING);
return false;
}
// We are comparing the first n-characters of each string, so let's use the PHP function to do it
if ($offset == 0 && is_int($length) && $case_insensitivity === true) {
return strncasecmp($main_str, $str, $length);
}
// Get the substring that we are comparing
if (is_int($length)) {
$main_substr = substr($main_str, $offset, $length);
$str_substr = substr($str, 0, $length);
} else {
$main_substr = substr($main_str, $offset);
$str_substr = $str;
}
// Return a case-insensitive comparison of the two strings
if ($case_insensitivity === true) {
return strcasecmp($main_substr, $str_substr);
}
// Return a case-sensitive comparison of the two strings
return strcmp($main_substr, $str_substr);
}
}
?>
substr_compare
(PHP 5)
substr_compare — İki dizgenin belli bir konumdan itibaren belli uzunluktaki parçalarını bayt bayt karşılaştırır
Açıklama
$ana_dizge
, string $dizge
, int $başlangıç
[, int $uzunluk = 0
[, bool $büyüklük_duyarsız = false
]] )
substr_compare() işlevi ana_dizge
dizgesinin başlangıç'tan itibaren
uzunluk karakterlik parçasını
dizge dizgesiyle karşılaştırır.
Değiştirgeler
-
ana_dizge -
-
dizge -
-
başlangıç -
Karşılaştırmanın başlayacağı konum. Negatifse, saymaya dizgenin sonundan itibaren başlanır.
-
uzunluk -
Karşılaştırılacak uzunluk.
-
büyüklük_duyarsız -
büyüklük_duyarsızTRUEise, karşılaştırmada harf büyüklükleri dikkade alınmaz.
Dönen Değerler
Eğer ana_dizge dizgesinin
başlangıç konumundan başlayan parçası
dizge dizgesinden küçükse sıfırdan küçük bir değer,
büyükse sıfırdan büyük bir değer, ikisi eşitse sıfır döner.
Eğer uzunluk belirtilmişse ve
ana_dizge dizgesinin uzunluğuna eşit veya ondan
büyükse substr_compare() bir uyarı basar ve FALSE
döndürür.
Sürüm Bilgisi
| Sürüm: | Açıklama |
|---|---|
| 5.1.0 |
Negatif bir başlangıç kullanma olasılığı
dikkate alındı.
|
Örnekler
Örnek 1 - substr_compare() örneği
<?php
echo substr_compare("abcde", "bc", 1, 2); // 0
echo substr_compare("abcde", "de", -2, 2); // 0
echo substr_compare("abcde", "bcg", 1, 2); // 0
echo substr_compare("abcde", "BC", 1, 2, true); // 0
echo substr_compare("abcde", "bc", 1, 3); // 1
echo substr_compare("abcde", "cd", 1, 2); // -1
echo substr_compare("abcde", "abc", 5, 1); // uyarı
?>
