grapheme_extract

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_extractExtrait un groupe de graphème d'une chaîne UTF-8

Description

Style procédural

grapheme_extract ( string $haystack , int $size [, int $extract_type [, int $start = 0 [, int &$next ]]] ) : string

Cette fonction extrait une séquence de groupes de graphèmes par défaut d'un texte en UTF-8.

Liste de paramètres

haystack

La chaîne à étudier.

size

Le nombre maximal d'élément, en fonction de $extract_type, à retourner.

extract_type

Définit le type d'unités indiquées par le paramètre $size :

  • GRAPHEME_EXTR_COUNT (par défaut) : $size est le nombre de groupe de graphèmes à extraire.
  • GRAPHEME_EXTR_MAXBYTES : $size est le nombre d'octets à retourner.
  • GRAPHEME_EXTR_MAXCHARS : $size est le nombre de caractères UTF-8 à retourner.

start

La position de début dans $haystack, exprimée en octets. Elle doit être positive, nulle ou inférieure à la taille de $haystack en octets, ou une valeur négative, qui compterait à partir de la fin de $haystack. Si $start ne correspond pas au premier octets d'un caractère UTF-8 valide, la position de démarrage sera déplacée au prochain octet valide.

next

Référence à une variable qui recevra la prochaine position de début valide. Lorsque la fonction se termine, cela peut être une position qui est au dela de la taille de la chaîne.

Valeurs de retour

Une chaîne qui débute à la position $start et se termine à la limite valide d'un graphème, et qui se conformen aux conditions $size et $extract_type.

Historique

Version Description
7.1.0 Le support des valeurs nagatives pour starts a été ajouté.

Exemples

Exemple #1 Exemple avec grapheme_extract()

<?php

$char_a_ring_nfd 
"a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd "o\xCC\x88"// 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print urlencode(grapheme_extract$char_a_ring_nfd $char_o_diaeresis_nfd1GRAPHEME_EXTR_COUNT2));

?>

L'exemple ci-dessus va afficher :

o%CC%88