Files
archived-doc-pt-br/reference/strings/functions/parse-str.xml
Leonardo Lara Rodrigues 6e3a481bf2 sync with en rev
2025-03-18 16:27:34 -03:00

204 lines
5.5 KiB
XML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 5d7f95f58f99eb121d25348370ee6146c0442b0c Maintainer: leonardolara Status: ready --><!-- CREDITS: fernandoc,ae,leonardolara -->
<refentry xml:id="function.parse-str" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>parse_str</refname>
<refpurpose>Converte a string em variáveis</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>void</type><methodname>parse_str</methodname>
<methodparam><type>string</type><parameter>string</parameter></methodparam>
<methodparam><type>array</type><parameter role="reference">result</parameter></methodparam>
</methodsynopsis>
<para>
Interpreta <parameter>string</parameter> como se ela fosse uma string de consulta
passada via URL e cria variáveis no escopo atual ou no array se
informado em <parameter>result</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>string</parameter></term>
<listitem>
<para>
A string de entrada.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>result</parameter></term>
<listitem>
<para>
Se o segundo parâmetro <parameter>result</parameter> for informado,
as variáveis serão gravadas como elementos de array.
</para>
<warning>
<para>
Utilizar esta função sem o parâmetro <parameter>result</parameter> é altamente
<emphasis>DESENCORAJADO</emphasis> e foi <emphasis>DESCONTINUADO</emphasis> a partir do PHP 7.2.
Desde o 8.0.0, o parâmetro <parameter>result</parameter> é <emphasis>obrigatório</emphasis>.
</para>
</warning>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.void;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
<parameter>result</parameter> não é mais opcional.
</entry>
</row>
<row>
<entry>7.2.0</entry>
<entry>
Utilização de <function>parse_str</function> sem o segundo parâmetro
agora emite um aviso de <constant>E_DEPRECATED</constant>.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Usando <function>parse_str</function></title>
<programlisting role="php">
<![CDATA[
<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
// Recomendado
parse_str($str, $output);
echo $output['first']; // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz
// DESENCORAJADO
parse_str($str);
echo $first; // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
?>
]]>
</programlisting>
</example>
</para>
<para>
Como variáveis no PHP não podem conter pontos ou espaços em seus nomes,
estes são convertidos em sublinhados. O mesmo se aplica aos nomes de
chaves de array no caso de utilizar esta função com o parâmetro
<parameter>result</parameter>.
<example>
<title>Confusão de nomes em <function>parse_str</function></title>
<programlisting role="php">
<![CDATA[
<?php
parse_str("My Value=Something");
echo $My_Value; // Something
parse_str("My Value=Something", $output);
echo $output['My_Value']; // Something
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
<function>parse_str()</function> é afetado pela diretiva <link linkend="ini.max-input-vars">max_input_vars</link>.
Exceder esse limite emite um <constant>E_WARNING</constant>,
e quaisquer variáveis além do limite não são adicionadas ao array de resultados.
O padrão é 1000; ajuste <link linkend="ini.max-input-vars">max_input_vars</link> conforme necessário.
</para>
</note>
<note>
<para>
Todas as variáveis criadas ou os valores informados no array do segundo parâmetro,
já estarão automaticamente convertidos por<function>urldecode</function>.
</para>
</note>
<note>
<para>
Para obter a string de consulta (<literal>QUERY_STRING</literal>) em si, vocẽ pode utilizar a variável
<varname>$_SERVER['QUERY_STRING']</varname>.
Além disso, leia a seção sobre
<link linkend="language.variables.external">variáveis de fontes
externas</link>.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>parse_url</function></member>
<member><function>pathinfo</function></member>
<member><function>http_build_query</function></member>
<member><function>urldecode</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->