explode

(PHP 4, PHP 5, PHP 7, PHP 8)

explodeDivide uma string com base em outra string

Descrição

explode(string $separator, string $string, int $limit = PHP_INT_MAX): array

Retorna um array de strings, sendo que cada uma é uma sub-string da string, formado pela separação dela nos limites formados pela string informada em separator.

Parâmetros

separator

A string que define o separador.

string

A string de entrada.

limit

Se limit estiver definido e for positivo, o array retornado conterá um máximo de limit elementos com o último elemento contendo todo o restante da string.

Se limit for negativo, todos os componentes exceto os (último - limit) são retornados.

Se limit for zero, é tratado como 1.

Note:

Antes do PHP 8.0, implode() aceitava seus dois primeiros parâmetros em qualquer ordem. A função explode() nunca suportou isto: deve-se garantir que o parâmetro separator vem antes do parâmetro string.

Valor Retornado

Retorna um array de strings criado pela separação da string nos limites formados pelo parâmetro separator.

Se separator for uma string vazia (""), explode() lança um ValueError. Se separator contiver um valor não contido em string e um valor negativo for usado em limit, um array vazio será retornado, caso contrário um array contendo string será retornado. Se valores de separator aparecerem no início ou no final da string, said values elementos de array vazios serão adicionados na posição inicial ou final do array retornado, respectivamente.

Registro de Alterações

Versão Descrição
8.0.0 explode() agora lança um ValueError quando separator é informado com uma string vazia (""). Anteriormente, explode() retornava false nesse caso.

Exemplos

Example #1 Exemplos de explode()

<?php
// Exemplo 1
$pizza  = "fatia1 fatia2 fatia3 fatia4 fatia5 fatia6";
$fatias = explode(" ", $pizza);
echo $fatias[0]; // fatia1
echo $fatias[1]; // fatia2

// Exemplo 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *

?>

Example #2 Exemplo de retorno de explode()

<?php
/*
   Uma string que não contém o separador simplesmente
   irá retornar um array de 1 elemento com a string original.
*/
$input1 = "olá";
$input2 = "olá,mundo";
$input3 = ',';
var_dump( explode( ',', $input1 ) );
var_dump( explode( ',', $input2 ) );
var_dump( explode( ',', $input3 ) );

?>

O exemplo acima produzirá:

array(1)
(
    [0] => string(3) "olá"
)
array(2)
(
    [0] => string(3) "olá"
    [1] => string(5) "mundo"
)
array(2)
(
    [0] => string(0) ""
    [1] => string(0) ""
)

Example #3 Exemplos do parâmetro limit

<?php
$str = 'um|dois|três|quatro';

// limite positivo
print_r(explode('|', $str, 2));

// limite negativo
print_r(explode('|', $str, -1));
?>

O exemplo acima produzirá:

Array
(
    [0] => um
    [1] => dois|três|quatro
)
Array
(
    [0] => um
    [1] => dois
    [2] => três
)

Notas

Note: Esta função é compatível com dados binários.

Veja Também

  • preg_split() - Divide uma string com base em expressão regular
  • str_split() - Converte uma string em um array
  • mb_split() - Divide uma string multibyte usando expressão regular
  • str_word_count() - Retorna informação sobre palavras usadas em uma string
  • strtok() - Divide uma string em tokens
  • implode() - Aglutina elementos de um array com uma string