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, 25 May 2012

view this page in

substr_compare

(PHP 5)

substr_compareComparación segura a nivel binario de dos o más strings desde un desplazamiento, hasta una longitud de caracteres

Descripción

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

substr_compare() compara main_str desde la posición offset con str hasta la cantidad length de caracteres.

Parámetros

main_str

El string principal a ser comparado.

str

El string secundario a ser comparado.

offset

La posición de inicio para la comparación. Si es negativo, comienza a contar desde el final del string.

length

La longitud de la comparación. El valor por defecto es el que sea mayor entre el largo de str comparado con el largo de main_str menos el offset.

case_insensitivity

Si case_insensitivity es TRUE, la comparación es insensible a mayúsculas y minúsculas.

Valores devueltos

Devuelve < 0 si main_str desde la posición offset es menor que str, > 0 si es mayor que str, y 0 si son iguales. Si offset es igual o mayor que la longitud de main_str o length se establece y es menor que 1, substr_compare() muestra una advertencia y devuelve FALSE.

Historial de cambios

Versión Descripción
5.1.0 Added the possibility to use a negative offset.

Ejemplos

Ejemplo #1 Ejemplos de 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); // warning
?>



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