(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
grapheme_substr — Retourne une partie d'une chaîne
Style procédural
Retourne une partie d'une chaîne.
stringLa chaîne à couper. Doit être UTF-8 et valide.
offset
       Position de départ en unités de graphème par défaut.
       Si offset est strictement positif, la chaîne renvoyée commencera à la
       offset ème position dans string, en comptant
       à partir de zéro. Si offset est négatif, la chaîne renvoyée commencera
       à la offset ème unité de graphème à partir de la fin de la chaîne.
      
length
       La taille de la sous-chaîne à extraire, en unités de graphème.
       Si length est donné et positif, la chaîne
       retournée va contenir au plus length
       graphèmes, commençant à offset (en fonction
       de la taille de la chaîne). Si length est
       fourni et est négatif, alors autant de graphème seront omis à
       partir de la fin de la chaîne (après que la position de début
       ait été calculé, lorsque offset est aussi
       négatif). Si offset dénote une position
       au-delà de la fin de la chaîne,une chaîne vide sera retournée.
      
   Retourne la partie de chaîne extraite de string,  ou false si une erreur survient.
  
| Version | Description | 
|---|---|
| 8.0.0 | La fonction fixe désormais systématiquement les décalages hors limites à la limite
       de la chaîne de caractères. Auparavant, falseétait retourné au lieu de la chaîne
       vide dans certains cas. | 
Exemple #1 Exemple avec grapheme_substr()
<?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_substr( "ao" . $char_a_ring_nfd . "bc" . $char_o_diaeresis_nfd . "O", 2, -1 ));
?>L'exemple ci-dessus va afficher :
a%CC%8Abco%CC%88
