(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
Proporciona la capacidad de comparar strings, con soporte para una ordenación apropiada, según la región.
Collator::FRENCH_COLLATION
(integer)
Ordenar cadenas con diferentes acentos. Este atributo es establecido automáticamente a On para los identificadores regionales franceses y unos pocos más. Los usuarios normalmente no necesitarán establecer explicitamente este atributo. Existe un coste de rendimiento en la comparación de cadenas cuando se establece a On, excepto para la longitud de la clave de ordenación, que no se ve afectada. Los valores posibles son:
Collator::ON
Collator::OFF
(predeterminado)Collator::DEFAULT_VALUE
Ejemplo #1 Reglas de FRENCH_COLLATION
Collator::ALTERNATE_HANDLING
(integer)
El atributo Alternate se usa para controlar el manejo de los también llamados caracters variables en el UCA: los espacios en blanco, de puntuación y símbolos. Si Alternate se establece a NonIgnorable (N), las diferencias entre estos caracteres son de la misma importancia que las diferencias entre letras. Si Alternate se establece a Shifted (S), estos caracteres son de menor importancia. El valor Shifted a menudo se usa en combinación con Strength establecido a Quaternary. En tal caso, los espacios en blanco, de puntuación y símbolos se consideran cuando se comparan las cadenas, pero sólo si todos los demás aspectos de las cadenas (letras base, acentos y si son mayúsculas/minúsculas) son idénticos. Si Alternate no se establece a Shifted, no existe ninguna diferencia entre un Strength de 3 y un Strength de 4. Para más información y algunos ejemplos véase Variable_Weighting en el » UCA. La razoón de que los valores de Alternate no sean simplemente On y Off es que se pueden añadir valores adicionales a Alternate en el futuro. La opción del UCA, Blanked, se expresa con Strength establecido a 3, y Alternate establecido a Shifted. Lo predeterminado para la mayoría de las configuraciones regionales es NonIgnorable. Si se selecciona Shifted, puede ser más lento si existen muchas cadenas que son la misma excepto por la puntuación; la longitud de la clave de ordenación no se verá afectada a menos que el nivel de fuerza (Strength) también sea aumentado.
Los valores posibles son:
Collator::NON_IGNORABLE
(predeterminado)Collator::SHIFTED
Collator::DEFAULT_VALUE
Ejemplo #2 Reglas de ALTERNATE_HANDLING
Collator::CASE_FIRST
(integer)
El atributo Case_First se usa para controlar si las letras mayúsculas
van antes que las minúsculas o viceversa, en ausencia de otras
diferencias en las cadenas. Los valores posibles son
Uppercase_First
(U) y Lowercase_First
(L), más el estándar Default
y Off.
No existe casi ninguna diferencia entre las opciones Off y Lowercase_First
en términos de resultados, por lo que normalmente los usuarios no usarán
Lowercase_First: solamente Off o Uppercase_First. (Los interesados en los
detalles de las diferencias entre X y L deberían consultar la Personalización
del Cotejo
). Especificar L o U no afectará al rendimiento de la comparación
de cadenas, pero afectará a la longitud de la clave de ordenación.
Los valores posibles son:
Collator::OFF
(predeterminado)Collator::LOWER_FIRST
Collator::UPPER_FIRST
Collator:DEFAULT
Ejemplo #3 Reglas de CASE_FIRST
Collator::CASE_LEVEL
(integer)
El atributo Case_Level se usa para cuando en el texto se quieren ignorar los acentos pero no si son mayúsculas/minúsculas. En tal situación, se establece Strength a Primary, y Case_Level a On. En la mayoría de las configuraciones regionales, este ajuste está establecido a Off por omision. Existe un pequeño impacto en el rendimiento de comparación de cadenas y en la ordenación por clave si este atributo se establece a On.
Los valores posibles son:
Collator::OFF
(predeterminado)Collator::ON
Collator::DEFAULT_VALUE
Ejemplo #4 Reglas de CASE_LEVEL
Collator::NORMALIZATION_MODE
(integer)
El ajuste Normalization determina si el texto se normaliza por completo o no en la comparación. Incluso si el ajuste está desactivado (lo predeterminado en muchas configuraciones regionales), el texto representado en su uso común se comparará correctamente (para más detalles, véase UTN #5). Solamente si los acentos están en orden no canónico existirá un problema. Si el ajuste se establece a On, se garantizan los mejores resultados para todas las posibles entradas de texto. Existe un coste medio de rendimiento en la comparación de cadenas si este atributo se establece a On, dependiendo de la frecuencia de secuencias que requiera la normalización. No hay un efecto significativo en la longitud de la clave de ordenación. Si el texto de entrada se sabe que está en la forma de normalización NFD o NFKD, no hay necesidad de habilitar esta opción Normalization.
Los valores posibles son:
Collator::OFF
(predeterminado)Collator::ON
Collator::DEFAULT_VALUE
Collator::STRENGTH
(integer)
El Servicio de Cotejo de ICU soporta muchos niveles de comparación (llamados "Levels", pero también conocidos como "Strengths"). Tener estas categorías habilita a ICU para ordenar cadenas de manera precisa según las convenciones regionales. Sin embargo, al permitir que los niveles sean empleados selectivamente, la búsqueda de una cadena en un texto se podrá realizar con varias condiciones de coincidencia. Para una información más detallada, véase el capítlo collator_set_strength().
Los valores posibles son:
Collator::PRIMARY
Collator::SECONDARY
Collator::TERTIARY
(predeterminado)Collator::QUATERNARY
Collator::IDENTICAL
Collator::DEFAULT_VALUE
Collator::HIRAGANA_QUATERNARY_MODE
(integer)
La compatibilidad con JIS x 4061 requiere la introducción de un nivel adinional para poder distinguir entre caracteres Hiragana y Katakana. Si se necesita compatibilidad con el estándar, este atributo debería establecerse a On y la fuerza (strength) a Quaternary. Esto afectará a la longitud de la clave de ordenación y al rendimiento en la comparación de cadenas.
Los valores posibles son:
Collator::OFF
(predeterminado)Collator::ON
Collator::DEFAULT_VALUE
Collator::NUMERIC_COLLATION
(integer)
Cuando se activa, este atributo genera una clave de cotejo para el valor numérico de subcadenas de dígitos. Es una manera de obtener '100' DESPUÉS de '2' en una ordenación
Los valores posibles son:
Collator::OFF
(predeterminado)Collator::ON
Collator::DEFAULT_VALUE
Collator::DEFAULT_VALUE
(integer)
Collator::PRIMARY
(integer)
Collator::SECONDARY
(integer)
Collator::TERTIARY
(integer)
Collator::DEFAULT_STRENGTH
(integer)
Collator::QUATERNARY
(integer)
Collator::IDENTICAL
(integer)
Collator::OFF
(integer)
Collator::ON
(integer)
Collator::SHIFTED
(integer)
Collator::NON_IGNORABLE
(integer)
Collator::LOWER_FIRST
(integer)
Collator::UPPER_FIRST
(integer)