grapheme_extract

(PHP 5 >= 5.3.0, PHP 7, PHP 8, 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$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

VersionDescription
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
To Top