|
 |
substr_compare (PHP 5) substr_compare --
Безопасное для обработки данных в двоичной форме сравнение 2 строк со
смещением, с учетом или без учета регистра
Описаниеint substr_compare ( string main_str, string str, int offset [, int length [, bool case_sensitivity]] )
substr_compare() сравнивает строку
main_str начиная с символа, номер которого
задан аргументом offset, со строкой
str. В сравнении участвуют максимум
length символов.
Возвращает число < 0 если main_str начиная
с символа offset меньше чем str, >
0 если она больше str, и 0 если строки равны.
Если length больше или равен длине
main_str и offset передан,
substr_compare() выводит предупреждение и возвращает FALSE.
Если case_sensitivity имеет значение TRUE,
сравнение выполняется с учетом регистра.
Пример 1. Пример использования substr_compare()
<?php
echo substr_compare("abcde", "bc", 1, 2); echo substr_compare("abcde", "bcg", 1, 2); echo substr_compare("abcde", "BC", 1, 2, true); echo substr_compare("abcde", "bc", 1, 3); echo substr_compare("abcde", "cd", 1, 2); echo substr_compare("abcde", "abc", 5, 1); ?>
|
|
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;
if ($offset >= strlen($main_str)) {
trigger_error('The start position cannot exceed initial string length.', E_USER_WARNING);
return false;
}
if ($offset == 0 && is_int($length) && $case_insensitivity === true) {
return strncasecmp($main_str, $str, $length);
}
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;
}
if ($case_insensitivity === true) {
return strcasecmp($main_substr, $str_substr);
}
return strcmp($main_substr, $str_substr);
}
}
?>
| |