Extrae un grupo de grafemas de una cadena UTF-8

# grapheme_extract

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

grapheme_extract — Extrae un grupo de grafemas de una cadena UTF-8

### Descripción

Estilo procedimental

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

Esta función extrae una secuencia de grupos de grafemas por defecto de un texto en UTF-8.

### Parámetros

`haystack`

  La cadena a estudiar.

`size`

  El número máximo de elementos, en función de `type`, a devolver.

`type`

  Define el tipo de unidades indicadas por el parámetro `size`:

  - GRAPHEME_EXTR_COUNT (por defecto): `size` es el número de grupos de grafemas a extraer.
  - GRAPHEME_EXTR_MAXBYTES: `size` es el número de bytes a devolver.
  - GRAPHEME_EXTR_MAXCHARS: `size` es el número de caracteres UTF-8 a devolver.
`offset`

  La posición de inicio en `haystack`, expresada en bytes. Debe ser positiva, nula o inferior al tamaño de `haystack` en bytes, o un valor negativo, que contaría desde el final de `haystack`. Si `offset` no corresponde al primer byte de un carácter UTF-8 válido, la posición de inicio será desplazada al siguiente byte válido.

`next`

  Referencia a una variable que recibirá la próxima posición de inicio válida. Cuando la función termina, esto puede ser una posición que está más allá del tamaño de la cadena.

### Valores devueltos

Una cadena que comienza en la posición `offset` y termina en el límite válido de un grafema, y que se ajusta a las condiciones `size` y `type` especificadas, o `false` si ocurre un error.

### Historial de cambios

Versión | Descripción
--- | ---
7.1.0 | Se añadió el soporte para valores negativos en `offset`.

### Ejemplos

Ejemplo #1 Ejemplo con 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));

    ?>

El ejemplo anterior mostrará:

    o%CC%88

### Ver también

- grapheme_substr() - Devuelve una parte de un string
- » Unicode Text Segmentation: Grapheme Cluster Boundaries

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open