(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
grapheme_substr — Devuelve una parte de un string
Estilo procedimental
Devuelve una parte de un string.
stringEl string a cortar. Debe ser UTF-8 y válido.
offset
       Posición de inicio en unidades de grafema por defecto.
       Si offset es estrictamente positivo, el string devuelto comenzará en la
       offset ésima posición en string, contando desde cero. Si offset es negativo, el string devuelto comenzará en la offset ésima unidad de grafema desde el final del string.
      
length
       El tamaño del sub-string a extraer, en unidades de grafema.
       Si length es dado y positivo, el string
       devuelto contendrá como máximo length
       grafemas, comenzando en offset (dependiendo
       del tamaño del string). Si length es
       proporcionado y es negativo, entonces se omitirán tantos grafemas desde el final del string (después de que la posición de inicio
       haya sido calculada, cuando offset también es
       negativo). Si offset denota una posición
       más allá del final del string, se devuelve un string vacío.
      
   Devuelve la parte del string extraída de string,  o false si ocurre un error.
  
| Versión | Descripción | 
|---|---|
| 8.0.0 | La función ahora corrige sistemáticamente los desplazamientos fuera de límites a los límites
       del string. Anteriormente, falseera devuelto en lugar de un string vacío en algunos casos. | 
Ejemplo #1 Ejemplo con 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 ));
?>El ejemplo anterior mostrará:
a%CC%8Abco%CC%88
