# grapheme_extract

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

grapheme_extract — Extrait un groupe de graphème d'une chaîne UTF-8

### Description

Style procédural

grapheme_extract(
string `$haystack`,
int `$size`,
int `$type` = `GRAPHEME_EXTR_COUNT`,
int `$offset` = 0,
int `&$next` = `null`
): string|false

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 `type`, à retourner.

`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.
`offset`

  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 `offset` 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 `offset` et se termine à la limite valide d'un graphème, et qui se conforment aux conditions `size` et `type` spécifiées, ou `false` si une erreur survient.

### Historique

Version | Description
--- | ---
7.1.0 | Le support des valeurs négatives pour `offset` 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_nfd, 1, GRAPHEME_EXTR_COUNT, 2));
?>`

L'exemple ci-dessus va afficher :

    o%CC%88

### Voir aussi

- grapheme_substr() - Retourne une partie d'une chaîne
- » Unicode Text Segmentation: Grapheme Cluster Boundaries