downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

substr_count> <strtr
[edit] Last updated: Fri, 18 Sep 2009

view this page in

substr_compare

(PHP 5)

substr_compareДвоично сигурно сравняване на два низа от определено отместване до определен брой символи, с или без отчитане на регистъра

Описание

int substr_compare ( string $main_str , string $str , int $offset [, int $length = 0 [, bool $case_insensitivity = false ]] )

substr_compare() сравнява main_str от позиция offset със str с максимално length на брой знаци.

Параметри

main_str

str

offset

Позиция от която започва сравняването. Ако е отрицателен, сравнението започва от края на низа.

length

Брой знаци за сравнение.

case_insensitivity

Ако параметърът case_insensitivity има стойност TRUE, то сравнението е нечувствително към регистъра.

Връщани стойности

Връща < 0 ако main_str от позиция offset е по-малко от str , > 0 ако е по-голямо от str и 0 ако са равни. Ако стойността на параметъра length е равна или по-голяма от стойността на параметъра main_str и length е установен, то функцията substr_compare() ще генерира предупреждение и ще върне FALSE.

Дневник на промените

Версия Описание
5.1.0 Добавена е възможността да се използва отрицателна стойност за offset .

Примери

Example #1 Пример за substr_compare()

<?php
echo substr_compare("abcde""bc"12); // 0
echo substr_compare("abcde""de", -22); // 0
echo substr_compare("abcde""bcg"12); // 0
echo substr_compare("abcde""BC"12true); // 0
echo substr_compare("abcde""bc"13); // 1
echo substr_compare("abcde""cd"12); // -1
echo substr_compare("abcde""abc"51); // предупреждение
?>



add a note add a note User Contributed Notes substr_compare
sleek 23-May-2005 05:07
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);
    }
}
?>

 
show source | credits | stats | sitemap | contact | advertising | mirror sites