(PHP 4, PHP 5, PHP 7)
preg_split — Divide un string mediante una expresión regular
$pattern
, string $subject
[, int $limit
= -1
[, int $flags
= 0
]] ) : arrayDivide el string dado mediante una expresión regular.
pattern
El patrón de búsqueda, dado como string.
subject
El string de entrada.
limit
Si se especifica, son devueltos únicamente los substrings hasta
limit
, con el resto del string colocado en el último
substring. Si limit
vale -1, 0 o NULL
, significa "sin límite"
y, como es un estándar en PHP, se puede usar NULL
para saltar hacia el
parámetro flags
.
flags
flags
puede ser una combinación de las siguientes
banderas (combinadas con el operador | de bits):
PREG_SPLIT_NO_EMPTY
PREG_SPLIT_DELIM_CAPTURE
PREG_SPLIT_OFFSET_CAPTURE
Si se aplica esta bandera, por cada coincidencia producida, el índice del string añadido
también será devuelto. Observe que esto cambia el valor devuelto
dentro de un array donde cada elemento es un array consistente en
el string coincidente en el índice 0 y su índice de string
dentro de subject
en el índice 1.
Devuelve un array que contiene substrings de subject
dividido por los límites coincidentes de pattern
, o FALSE
en caso de error.
Ejemplo #1 Ejemplo de preg_split() : Obtener las partes de un string de búsqueda
<?php
// divide la frase mediante cualquier número de comas o caracteres de espacio,
// lo que incluye " ", \r, \t, \n y \f
$claves = preg_split("/[\s,]+/", "hypertext language, programming");
print_r($claves);
?>
El resultado del ejemplo sería:
Array ( [0] => hypertext [1] => language [2] => programming )
Ejemplo #2 Dividir un string en sus caracteres constituyentes
<?php
$str = 'string';
$caracteres = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($caracteres);
?>
El resultado del ejemplo sería:
Array ( [0] => s [1] => t [2] => r [3] => i [4] => n [5] => g )
Ejemplo #3 Dividir un string mediante coincidencias y sus índices
<?php
$str = 'hypertext language programming';
$caracteres = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($caracteres);
?>
El resultado del ejemplo sería:
Array ( [0] => Array ( [0] => hypertext [1] => 0 ) [1] => Array ( [0] => language [1] => 10 ) [2] => Array ( [0] => programming [1] => 19 ) )
Si no necesita la potencia de expresiones regulares, puede optar por alternativas más rápidas (no obstante más sencillas) como explode() o str_split().
Si la comparación falla, será devuelto un array con un único elemento que contiene el string de entrada.