Resumo : neste tutorial, você aprenderá como usar a explode()
função PHP para dividir uma string por um separador em um array de strings.
Introdução à função explode() do PHP
A explode()
função PHP retorna um array de strings dividindo uma string por um separador. O seguinte mostra a sintaxe da explode()
função:
explode ( string $separator , string $string , int $limit = PHP_INT_MAX ) : array
Linguagem de código: PHP ( php )
A explode()
função possui os seguintes parâmetros:
$separator
é o delimitador que aexplode()
função usa para dividir a string $.$string
é a string de entrada$limit
especifica como a função retornará a matriz de resultados.
Se $limit
for positivo, a explode()
função retorna um array com $limit
elementos onde o último elemento contém o resto da string.
Se $limit
for zero, explode()
a função o interpreta como um. Portanto, a função retorna um array com a string original.
Se $limit
for negativo, a explode()
função divide $string usando o $separator
. Além disso, remove os últimos $limit
elementos da matriz de resultados.
Antes do PHP 8.0.0, a explode()
função retornava false se o $separator fosse uma string vazia. A partir do PHP 8.0.0, a explode()
função lança um ValueError
.
Exemplos de funções PHP explode()
Vejamos alguns exemplos de uso da explode()
função.
1) Exemplo simples da função explode() do PHP
O exemplo a seguir usa a explode()
função para dividir uma string por uma vírgula ( ,
):
<?php
$str = 'first_name,last_name,email,phone';
$headers = explode(',', $str);
print_r($headers);
Linguagem de código: PHP ( php )
Saída:
array(4)
{
[0]=> string(10) "first_name"
[1]=> string(9) "last_name"
[2]=> string(5) "email"
[3]=> string(5) "phone"
}
Linguagem de código: PHP ( php )
2) Usando a função PHP explode() com um $limit positivo
O exemplo a seguir usa a explode()
função com o $limit
argumento a positivo:
$str = 'first_name,last_name,email,phone';
$headers = explode(',', $str, 3);
var_dump($headers);
Linguagem de código: PHP ( php )
Saída:
array(3)
{
[0]=> string(10) "first_name"
[1]=> string(9) "last_name"
[2]=> string(5) "email,phone"
}
Linguagem de código: PHP ( php )
Conforme mostrado claramente na saída, o array retornado contém três elementos especificados pelo $limit
argumento. Além disso, o último elemento possui a string restante.
3) Usando a função PHP explode() com $limit negativo
O exemplo a seguir usa a explode()
função com o $limit
argumento negativo:
$str = 'first_name,last_name,email,phone';
$headers = explode(',', $str, -1);
var_dump($headers);
Linguagem de código: PHP ( php )
Saída:
array(3)
{
[0]=> string(10) "first_name"
[1]=> string(9) "last_name"
[2]=> string(5) "email"
}
Linguagem de código: PHP ( php )
Neste exemplo, a explode()
função retorna um array da string dividida pela vírgula ( ,
). Além disso, exclui o último elemento da matriz de resultados.
Se você usar -2
em vez de – 1
para $limit
, a explode()
função removerá os 2 últimos elementos. Por exemplo:
$str = 'first_name,last_name,email,phone';
$headers = explode(',', $str, -1);
var_dump($headers);
Linguagem de código: PHP ( php )
Saída:
array(2)
{
[0]=> string(10) "first_name"
[1]=> string(9) "last_name"
}
Linguagem de código: PHP ( php )
4) Um exemplo prático da função explode() do PHP
A str_after()
função a seguir retorna o restante de uma string após a primeira ocorrência de uma string:
<?php
function str_after($str, $search)
{
return $search === '' ? $str : array_reverse(explode($search, $str, 2))[0];
}
Linguagem de código: PHP ( php )
Como funciona.
- Primeiro, divida a string em uma matriz de dois elementos separados pela
$search
string. - Segundo, inverta a matriz de resultados e retorne o primeiro elemento da matriz de resultados.
O exemplo a seguir usa a str_after()
função para obter a parte do nome de domínio de um email:
<?php
// ...
echo str_after('[email protected]', '@');
Linguagem de código: PHP ( php )
Saída:
tutorials.acervolima.com
Linguagem de código: PHP ( php )
Resumo
- Use a função PHP
explode()
para retornar um array de strings dividindo uma string por um separador.