(PHP 4, PHP 5, PHP 7, PHP 8)
parse_str — Interpreta uma string como uma requisição URL
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.
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.
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.
Nenhum valor é retornado.
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 .
|
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
?>
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.