preg_split
(PHP 4, PHP 5)
preg_split — Divide a string por uma expressão regular
Descrição
Divide uma dada string por uma expressão regular.
Parâmetros
- pattern
-
O padrão a ser usado.
- subject
-
A string de entrada.
- limit
-
Se especificado, então somente limit pedaços da string serão retornados, e se limit for -1, significa "sem limite", que é útil quando especificando flags .
- flags
-
flags pode ser uma combinação das seguintes flags (combinada com o operador | bit-a-bit):
- PREG_SPLIT_NO_EMPTY
- Se esta flag é usada, somente pedaços não vazios serão retornados pela preg_split().
- PREG_SPLIT_DELIM_CAPTURE
- Se esta flag é usada, expressão entre parênteses no padrão serão capturados e retornados também.
- PREG_SPLIT_OFFSET_CAPTURE
-
Se esta flag é usada, para cada combinação o offset da string será também retornado. Note que isto modifica o valor de retorno em um array onde cada elemento é um array contendo a string combinada no Ãndice 0 e o offset da mesma em subject no Ãndice 1.
Valor Retornado
Retorna um array contendo pedaços de strings de subject divididos pelo que for combinado pelo pattern .
Histórico
Versão | Descrição |
---|---|
4.3.0 | A PREG_SPLIT_OFFSET_CAPTURE foi adicionada |
4.0.5 | A PREG_SPLIT_DELIM_CAPTURE foi adicionada |
4.0.0 | O parâmetro flags foi adicionado |
Exemplos
Example#1 Exemplo da preg_split(): Obtendo partes de uma string
<?php
// reparte a frase por algum número caracteres de vÃrgula ou espaço,
// incluindo " ", \r, \t, \n e \f
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
?>
Example#2 Dividindo a string em cada caractere que a compõe
<?php
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>
Example#3 Dividindo a string pela combinação e seus offsets
<?php
$str = 'hypertext language programming';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>
O exemplo acima irá imprimir:
Array ( [0] => Array ( [0] => hypertext [1] => 0 ) [1] => Array ( [0] => language [1] => 10 ) [2] => Array ( [0] => programming [1] => 19 ) )
Notas
Se você não precisa do poder das expressões regulares, pode optar por alternativa mais rápidas como explode() ou str_split().