W3docs

explode()

A função explode() divide uma string em um array de substrings. Veja a sintaxe, o parâmetro $limit e exemplos práticos de uso.

A função explode() divide uma string em um array de substrings, quebrando-a sempre que um delimitador escolhido aparece. É a forma padrão em PHP de transformar texto delimitado — uma linha CSV, uma data, uma lista de tags separadas por vírgula — em dados que podem ser percorridos em um loop. É o inverso de implode(), que une um array de volta em uma string.

Esta página aborda a sintaxe, o parâmetro opcional $limit (incluindo valores negativos), o valor de retorno, padrões comuns de análise e as armadilhas que costumam pegar as pessoas de surpresa.

Sintaxe

explode(string $separator, string $string, int $limit = PHP_INT_MAX): array
ParâmetroObrigatórioDescrição
$separatorsimA string delimitadora usada para dividir. É correspondida literalmente, não como expressão regular.
$stringsimA string de entrada a ser dividida.
$limitnãoControla quantas partes são retornadas (veja abaixo). O padrão é PHP_INT_MAX.

A função retorna um array de strings. Se $separator for uma string vazia (""), explode() lança um ValueError (no PHP 8+; em versões anteriores retornava false). Se o separador nunca aparecer na string, o resultado é um array com um único elemento contendo a string original inteira.

Exemplo básico

php— editable, runs on the server

Definimos o delimitador ,, chamamos explode() e exibimos o array resultante com print_r(). Cada elemento é tudo que está entre dois delimitadores.

A saída deste código será:

Array
(
    [0] => Hello
    [1] => World!
)

Limitando o número de partes

O parâmetro opcional $limit altera a forma como a string é dividida:

  • Limite positivo — o array contém no máximo esse número de elementos; o último elemento guarda o restante não dividido da string.
  • Zero — tratado como 1, de modo que a string inteira é retornada como um único elemento.
  • Limite negativo — todas as partes são retornadas exceto as últimas |limit| delas.

Limite positivo

php— editable, runs on the server

Com um limite de 3, a string é dividida em no máximo três elementos. Observe que o último elemento mantém o restante da string sem dividir — three,four,five — em vez de ser descartado.

A saída deste código será:

Array
(
    [0] => one
    [1] => two
    [2] => three,four,five
)

Isso é útil quando você só precisa dos primeiros campos, por exemplo explode(' ', $logLine, 2) para separar um timestamp do restante de uma mensagem de log.

Limite negativo

Um limite negativo remove elementos do final do resultado:

<?php
$string = "one,two,three,four,five";
print_r(explode(",", $string, -2));
?>

As duas últimas partes (four e five) são removidas:

Array
(
    [0] => one
    [1] => two
    [2] => three
)

Padrões comuns de análise

Um uso típico no mundo real é ler um registro delimitado e aparar cada campo:

<?php
$csvRow = "Jane , Doe ,  [email protected] ";
$fields = array_map('trim', explode(",", $csvRow));
print_r($fields);
?>

A saída são valores limpos, sem espaços em branco:

Array
(
    [0] => Jane
    [1] => Doe
    [2] => [email protected]
)

explode() também se combina naturalmente com a desestruturação list() para extrair partes nomeadas de uma string:

<?php
$date = "2026-06-21";
[$year, $month, $day] = explode("-", $date);
echo "Year: $year, Month: $month, Day: $day";
?>

Saída:

Year: 2026, Month: 06, Day: 21

Armadilhas

  • O separador é literal, não uma regex. explode("-", ...) divide no hífen, nunca em um padrão. Se você precisar de uma expressão regular (por exemplo, dividir em qualquer sequência de espaço em branco), use preg_split().
  • Você não pode dividir em caracteres individuais com explode(). Um separador vazio lança um ValueError. Para dividir uma string em caracteres únicos, use str_split().
  • Múltiplos delimitadores adjacentes criam elementos vazios. explode(",", "a,,b") retorna ["a", "", "b"]. Filtre-os com array_filter() se não quiser mantê-los.
  • Separador não encontrado? Você ainda obtém um array válido — um array de um único elemento contendo a string inteira — então pode indexar com segurança em [0].

Funções relacionadas

  • implode() / join() — o inverso: une um array em uma string.
  • str_split() — divide uma string em partes de comprimento fixo (ou caracteres).
  • preg_split() — divide usando uma expressão regular.
  • substr() — extrai parte de uma string por posição.
  • trim() — remove espaços em branco de cada parte após o explode.

Prática

Prática
Qual é a funcionalidade da função 'explode' em PHP?
Qual é a funcionalidade da função 'explode' em PHP?
Was this page helpful?