parse_str

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

parse_strInterpreta uma string como uma requisição URL

Descrição

parse_str(string $string, array &$result): void

Interpreta string como se ela fosse uma string de consulta passada via URL e define chaves no array informado em result. Se nenhum parâmetro result for passado, os valores são definidos como variáveis no escopo atual.

Parâmetros

string

A string de entrada.

result

Uma variável passada por referência, que será definida como um array contendo os pares chave-valor extraídos de string. Se o parâmetro result não for passado, uma variável separada será definida no escopo local para cada chave.

Aviso

Utilizar esta função sem o parâmetro result é altamente DESENCORAJADO e foi DESCONTINUADO a partir do PHP 7.2. Desde o 8.0.0, o parâmetro result é obrigatório.

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão Descrição
8.0.0 result não é mais opcional.
7.2.0 Utilização de parse_str() sem o segundo parâmetro agora emite um aviso de E_DEPRECATED.

Exemplos

Exemplo #1 Usando parse_str()

<?php
$str
= "primeiro=valor&arr[]=foo+bar&arr[]=baz";

// Recomendado
parse_str($str, $output);
echo
$output['primeiro'], PHP_EOL; // valor
echo $output['arr'][0], PHP_EOL; // foo bar
echo $output['arr'][1], PHP_EOL; // baz
?>

Quaisquer espaços e pontos em nomes de parâmetros são convertidos em sublinhados ao criar chaves de array ou variáveis ​​locais. Isso ocorre porque nomes de variáveis ​​em PHP não podem conter espaços ou pontos, e se aplica mesmo ao usar esta função com o parâmetro result recomendado.

Exemplo #2 Codificação de nomes em parse_str()

<?php
parse_str
("Meu Valor=Algo", $output);
echo
$output['Meu_Valor']; // Algo
?>

Notas

Nota:

parse_str() é afetada pela diretiva max_input_vars. Exceder esse limite emite um E_WARNING, e quaisquer variáveis ​​além do limite não são adicionadas ao array de resultados. O padrão é 1000; ajuste max_input_vars conforme necessário.

Nota:

Todos os valores preenchidos no array result (ou variáveis ​​criadas se o segundo parâmetro não estiver definido) já são decodificados por URL usando as mesmas regras de urldecode().

Nota:

Para obter a string de consulta da solicitação atual, pode ser usada a variável $_SERVER['QUERY_STRING']. Além disso, leia a seção sobre variáveis de fontes externas.

Veja Também