Collator::setStrength
collator_set_strength
(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)
Collator::setStrength -- collator_set_strength — Set collation strength
Description
Style orienté objet
$strength
)Style procédural
Le service de collation » ICU suporte de nombreux niveaux de comparaison (appelés "Levels", mais aussi connus sous le nom de "Strengths"). Avec ces categories, ICU peut trier les chaînes avec précision, en fonction des conventions locales. Cependant, en permettant l'utilisation selective des niveaux, la recherche d'une chaîne dans un texte peut être réalisées, à partir de différentes conditions. Pour plus d'informations, voyez le chapitre collator_set_strength().
-
Niveau primaire : Typiquement, ceci est utilisé pour faire la différence entre des caractères de bases, comme "a" < "b"). C'est la différence la plus importante. Par exemple, les dictionnaires sont divisées en sections avec les caractères de base. C'est le niveau 1.
-
Niveau secondaire : Les accents sur les caractères sont considérés comme des différences secondaires. Par exemple, "as" < "às" < "at". D'autres différences entre les caractères peuvent être considérées comme secondaires, en fonction des langues. Une différence secondaire sont toujours ignorées quand une différence primaire est présente. C'est le niveau 2.
Note:
Note : dans certaines langues, comme le danois, certains caractères accentués sont considérés comme des caractères de bases. Dans la plupart des langues, un caractère accentué est simplement une différence secondaire avec les versions simple de la lettre.
-
Niveau tertiaire : les majuscules et les minuscules sont distinguées au niveau tertiaire. par exemple, "ao" < "Ao" < "aò". De plus, une variante d'une lettre est différente de la forme de base, au niveau ternaire. Par exemple, "A" et " ". Un autre exemple de différente tertiaire est le grand et le petit Kana. Une différence tertiaire est ignorée quand une différence primaire ou secondaire est présente. C'est le niveau 3.
-
Niveau quaternaire : Lorsque le ponctuation est ignorée, au niveau 13, un niveau supplémentaire peut être utilisé pour distinguer des mots avec ou sans ponctuation. Par exemple, "ab" < "a-b" < "aB". Cette différence est ignorée lorsqu'il y a une différence de niveau primaire, secondaire ou tertiaire. Le niveau quaternaire ne doit être utilisé que lorsqu'il faut ignorer la ponctuation ou traiter des mots japonais (traitement Hiragana).
-
Niveau identique : Lorsque tous les autres niveaux sont égaux, le niveau identique est utilisé pour départager les caractères. Le code Unicode point sur une forme NFD de chaque caractère, et sont comparés à ce niveau, au cas où il n'y aurait pas de différence au niveau 14. Par exemple, les cantilliation de l'hébreux ne sont distingués qu'à ce niveau. Ce niveau ne doit être utilisé qu'avec beaucoup de parcimonie, car il fait substantiellement décroitre les performances. Il est connu sous le nom de niveau 5.
Par exemple, on peut choisir d'ignorer les accents, les accents et les majuscules dans un texte. Presque tous les caractères sont distingués par les trois premiers niveaux, et la plupart des locales s'arrêtent au niveau trois. Cependant, si l'attribut Alternate prend la valeur de Shifted, alors le quatrième niveau sert à départager les égalités entre les espaces, la ponctuation et les symboles, qui seraient ignorés autrement. Si des différentes très subtiles sont nécessaires entre les caractères, le niveau identique peut être utilisée (par exemple, le niveau identique fait la différence entre un A mathématique petit et gras avec un A mathématique italique et petit. Cependant, utiliser ces niveaux implique une dégradation significative des performances lors de la comparaison et le tri des chaînes proches ou égales.
Liste de paramètres
-
coll
-
Objet Collator.
-
strength
-
Le niveau à choisir.
Les valeurs possibles sont :
-
Collator::PRIMARY
-
Collator::SECONDARY
-
Collator::TERTIARY
-
Collator::QUATERNARY
-
Collator::IDENTICAL
-
Collator::DEFAULT_STRENGTH
-
Exemples
Exemple #1 Exemple avec collator_set_strength()
<?php
$arr = array( 'aò', 'Ao', 'ao' );
$coll = collator_create( 'en_US' );
// Trie un tableau avec le niveau par défaut
collator_sort( $coll, $arr );
var_export( $arr );
// Tri un tableau avec le niveau primaire
collator_set_strength( $coll, Collator::PRIMARY );
collator_sort( $coll, $arr );
var_export( $arr );
?>
L'exemple ci-dessus va afficher :
array ( 0 => 'ao', 1 => 'Ao', 2 => 'aò', ) array ( 0 => 'aò', 1 => 'Ao', 2 => 'ao', )
Version en cache
24/11/2024 18:18:42 Cette version de la page est en cache (à la date du 24/11/2024 18:18:42) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-collator.setstrength.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.