PHP 8.5.0 Alpha 1 available for testing

grapheme_substr

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

grapheme_substrDevuelve una parte de un string

Descripción

Estilo por procedimientos

grapheme_substr(string $string, int $offset, ?int $length = null): string|false

Devuelve una parte de un string.

Parámetros

string

El 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.

Valores devueltos

Devuelve la parte del string extraída de string, o false en caso de error.

Historial de cambios

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, false era devuelto en lugar de un string vacío en algunos casos.

Ejemplos

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 resultado del ejemplo sería:

a%CC%8Abco%CC%88

Ver también

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top