(PHP 4, PHP 5, PHP 7, PHP 8)
preg_split — Divide uma string com base em expressão regular
Divide a string informada com base em uma expressão regular.
patternA expressão a ser pesquisada, como uma string.
subjectA string de entrada.
limit
Se especificado, somente substrings de até limit
bytes são retornadas com o resto da string sendo colocado na última
substring. Um valor de -1 ou 0 em limit significa "sem limite".
flags
flags pode ser qualquer combinação das seguintes
opções (combinadas com o operador binário |):
PREG_SPLIT_NO_EMPTYPREG_SPLIT_DELIM_CAPTUREPREG_SPLIT_OFFSET_CAPTURE
Se esta opção for definida, para cada correspondência que ocorrer, a sua posição na
string de entrada também será retornada. Observe que isto altera o valor de
retorno para um array onde cada elemento é um array consistindo da
string correspondida no índice 0 e seu deslocamento na string de entrada
(subject) no índice 1.
Retorna um array contendo substrings de subject
divididas ao longo de limites correspondidos por pattern, ou false em caso de falha.
Se o padrão de expressão regular passado não for compilado para uma expressão regular válida, um E_WARNING será emitido.
Exemplo #1 Exemplo de preg_split(): Obter partes de uma string de pesquisa
<?php
// divide a frase por qualquer número de vírgulas ou caracteres representativos de espaço,
// que incluem " ", \r, \t, \n e \f
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
print_r($keywords);
?>O exemplo acima produzirá:
Array
(
[0] => hypertext
[1] => language
[2] => programming
)
Exemplo #2 Dividindo uma string em seus caracteres componentes
<?php
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>O exemplo acima produzirá:
Array
(
[0] => s
[1] => t
[2] => r
[3] => i
[4] => n
[5] => g
)
Exemplo #3 Dividindo uma string em correspondências e suas posições
<?php
$str = 'hypertext language programming';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>O exemplo acima produzirá:
Array
(
[0] => Array
(
[0] => hypertext
[1] => 0
)
[1] => Array
(
[0] => language
[1] => 10
)
[2] => Array
(
[0] => programming
[1] => 19
)
)
Se o poder das expressões regulares não for necessário, pode-se optar por alternativas mais rápidas (e simples) como explode() ou str_split().
Se a correspondência falhar, um array com um único elemento contendo a string de entrada será retornado.