git-svn-id: https://svn.php.net/repository/phpdoc/pt_BR/trunk@249643 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
Felipe Pena
2008-01-01 20:59:09 +00:00
parent d0b1483ec3
commit a80eef8cbf
13 changed files with 1084 additions and 562 deletions

View File

@@ -1,5 +1,5 @@
<HTML>
<!-- EN-Revision: 1.6 Maintainer: narigone Status: ready -->
<!-- EN-Revision: 1.6 Maintainer: felipe Status: ready --><!-- CREDITS: narigone -->
<HEAD>
<TITLE>Manual do PHP</TITLE>
<META NAME="HTTP_EQUIV" CONTENT="text/html; charset=ISO-8859-1">
@@ -32,7 +32,7 @@ COLSPAN="3" ALIGN="center">&nbsp;</TD></TR></TABLE></TD></TR><TR BGCOLOR="#33336
Vá em <A HREF="http://www.php.net/docs.php">http://www.php.net/docs.php</A>
para pegar a versão mais nova.</P>
<BR><P CLASS="copyright" ALIGN="CENTER"><A HREF="copyright.html">Copyright</A> &copy; 1997 - 2007 the PHP Documentation Group</P>
<BR><P CLASS="copyright" ALIGN="CENTER"><A HREF="copyright.html">Copyright</A> &copy; 1997 - 2008 the PHP Documentation Group</P>
</TD><TD><IMG SRC="spacer.gif" WIDTH="10" HEIGHT="1"></TD></TR>
<TR><TD COLSPAN="3"><DIV CLASS="NAVFOOTER"><TABLE BGCOLOR="#CCCCFF" BORDER="0"

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- EN-Revision: 1.4 Maintainer: narigone Status: ready -->
<!-- EN-Revision: 1.5 Maintainer: felipe Status: ready --><!-- CREDITS: narigone -->
<refentry xml:id="function.apache-reset-timeout" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>apache_reset_timeout</refname>
@@ -35,6 +35,17 @@
&reftitle.notes;
&note.sm.disabled;
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>set_time_limit</function></member>
<member><function>ignore_user_abort</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,25 +1,23 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- EN-Revision: 1.15 Maintainer: narigone Status: ready -->
<!-- CREDITS: lucasr -->
<!-- EN-Revision: 1.16 Maintainer: felipe Status: ready --><!-- CREDITS: lucasr, narigone -->
<refentry xml:id="function.array-push" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>array_push</refname>
<refpurpose>Adiciona um ou mais elementos no final de um array</refpurpose>
</refnamediv>
<refsect1>
<title>Descrição</title>
<methodsynopsis>
<type>int</type><methodname>array_push</methodname>
<methodparam><type>array</type><parameter role="reference">array</parameter></methodparam>
<methodparam><type>mixed</type><parameter>var</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter>...</parameter></methodparam>
</methodsynopsis>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>array_push</methodname>
<methodparam><type>array</type><parameter role="reference">array</parameter></methodparam>
<methodparam><type>mixed</type><parameter>var</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter>...</parameter></methodparam>
</methodsynopsis>
<para>
<function>array_push</function> trata
<parameter>array</parameter> como uma pilha, e adiciona
as variáveis passadas como argumentos no final de <parameter>array</parameter>.
O comprimento de <parameter>array</parameter> aumenta de acordo com o
número de variáveis adicionadas. Tem o mesmo efeito de:
<function>array_push</function> trata <parameter>array</parameter> como uma
pilha, e adiciona as variáveis passadas como argumentos no final de
<parameter>array</parameter>. O tamanho do <parameter>array</parameter>
aumenta de acordo com o número de variáveis adicionadas. Tem o mesmo efeito de:
<programlisting role="php">
<![CDATA[
<?php
@@ -29,9 +27,52 @@ $array[] = $var;
</programlisting>
repetido para cada argumento <parameter>var</parameter>.
</para>
<note>
<simpara>
Se você usar <function>array_push</function> para adicionar um elemento na
array, é melhor usar <literal>$array[] = </literal> porque deste jeito
não há uma chamada a uma função.
</simpara>
</note>
<note>
<simpara>
<function>array_push</function> irá emitir um aviso se o primeiro argumento
não for um array. isto é diferente do funcionamento de
<literal>$var[]</literal> aonde uma nova matriz é criada.
</simpara>
</note>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>array</parameter></term>
<listitem>
<para>
O array de entrada.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>var</parameter></term>
<listitem>
<para>
O valor a ser adicionado.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Retorna o novo número de elementos do array.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemplo de <function>array_push</function></title>
@@ -58,24 +99,15 @@ Array
</screen>
</example>
</para>
<note>
<simpara>
Se você usar <function>array_push</function> para adicionar um elemento na
array, é melhor usar <literal>$array[] = </literal> porque deste jeito
não há uma chamada a uma função.
</simpara>
</note>
<note>
<simpara>
<function>array_push</function> irá emitir um aviso se o primeiro argumento
não for um array. isto é diferente do funcionamento de
<literal>$var[]</literal> aonde uma nova matriz é criada.
</simpara>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
Veja também: <function>array_pop</function>,
<function>array_shift</function>, e
<function>array_unshift</function>.
<simplelist>
<member><function>array_pop</function></member>
<member><function>array_shift</function></member>
<member><function>array_unshift</function></member>
</simplelist>
</para>
</refsect1>
</refentry>

View File

@@ -1,36 +1,61 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- EN-Revision: 1.11 Maintainer: narigone Status: ready -->
<!-- CREDITS: lucasr -->
<refentry xml:id="function.array-rand" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>array_rand</refname>
<refpurpose>Retorna um ou mais elementos aleatórios de um array</refpurpose>
</refnamediv>
<refsect1>
<title>Descrição</title>
<methodsynopsis>
<type>mixed</type><methodname>array_rand</methodname>
<methodparam><type>array</type><parameter>input</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>num_req</parameter></methodparam>
</methodsynopsis>
<para>
<function>array_rand</function> é bastante útil quando se quer
conseguir aleatoriamente um ou mais elementos de um array. Ela recebe
o array <parameter>input</parameter> e outro argumento opcional
<parameter>num_req</parameter> o qual especifica quantos elementos
se quer conseguir - se não for especificado, o padrão é 1.
</para>
<para>
Se estiver pegando apenas um elemento, <function>array_rand</function>
retorna a chave para este elemento aleatório. De outra forma, ele retorna
um array com as chaves desses elementos aleatórios. Assim é possível
conseguir chaves e valores aleatórios a partir da mesma função.
</para>
&note.randomseed;
<para>
<example>
<title>Exemplo de <function>array_rand</function></title>
<programlisting role="php">
<!-- EN-Revision: 1.12 Maintainer: felipe Status: ready --><!-- CREDITS: narigone, lucasr -->
<refentry xml:id="function.array-rand" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>array_rand</refname>
<refpurpose>Retorna um ou mais elementos aleatórios de um array</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>mixed</type><methodname>array_rand</methodname>
<methodparam><type>array</type><parameter>input</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>num_req</parameter></methodparam>
</methodsynopsis>
<para>
<function>array_rand</function> é bastante útil quando se quer
conseguir aleatoriamente um ou mais elementos de um array.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>input</parameter></term>
<listitem>
<para>
O array de entrada.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>num_req</parameter></term>
<listitem>
<para>
Especifica quantos elementos deseja obter - se não especificado,
o padrão é 1.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Se estiver pegando apenas um elemento, <function>array_rand</function>
retorna a chave para este elemento aleatório. De outra forma, ele retorna
um array com as chaves desses elementos aleatórios. Assim é possível
conseguir chaves e valores aleatórios a partir da mesma função.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemplo de <function>array_rand</function></title>
<programlisting role="php">
<![CDATA[
<?php
srand((float) microtime() * 10000000);
@@ -40,14 +65,23 @@ echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>
]]>
</programlisting>
</example>
</para>
<para>
Veja também <function>shuffle</function>.
</para>
</refsect1>
</refentry>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
&note.randomseed;
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>shuffle</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:

View File

@@ -1,45 +1,65 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- EN-Revision: 1.16 Maintainer: narigone Status: ready -->
<!-- CREDITS: lucasr -->
<!-- splitted from ./pt_BR/functions/array.xml, last change in rev 1.1 -->
<!-- last change to 'array-unique' in en/ tree in rev 1.2 -->
<refentry xml:id="function.array-unique" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>array_unique</refname>
<refpurpose>Remove o valores duplicados de um array</refpurpose>
</refnamediv>
<refsect1>
<title>Descrição</title>
<methodsynopsis>
<type>array</type><methodname>array_unique</methodname>
<methodparam><type>array</type><parameter>array</parameter></methodparam>
</methodsynopsis>
<para>
<function>array_unique</function> recebe o argumento
<parameter>array</parameter> e retorna um novo array sem valores
duplicados.
</para>
<para>
Note que as chaves são preservadas. <function>array_unique</function>
ordena inicialmente os valores como strings mantendo a primeira
chave encontrada para cada valor, e ignorando as chaves encontradas
posteriormente. Isso não significa que a chave do primeiro valor
do <parameter>array</parameter> ainda desordenado será mantido.
</para>
<note>
<simpara>
Dois elementos são considerados iguais se, e somente se,
<literal>(string) $elem1 === (string) $elem2</literal>. Em palavras:
quando a represetação em string é a mesma.
</simpara>
<simpara>
O primeiro será usado.
</simpara>
</note>
<para>
<example>
<title>Exemplo de <function>array_unique</function></title>
<programlisting role="php">
<!-- EN-Revision: 1.17 Maintainer: felipe Status: ready --><!-- CREDITS: lucasr, narigone -->
<refentry xml:id="function.array-unique" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>array_unique</refname>
<refpurpose>Remove o valores duplicados de um array</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>array_unique</methodname>
<methodparam><type>array</type><parameter>array</parameter></methodparam>
</methodsynopsis>
<para>
Recebe o argumento <parameter>array</parameter> e retorna um novo array sem valores
duplicados.
</para>
<para>
Note que as chaves são preservadas. <function>array_unique</function>
ordena inicialmente os valores como strings mantendo a primeira
chave encontrada para cada valor, e ignorando as chaves encontradas
posteriormente. Isso não significa que a chave do primeiro valor
do <parameter>array</parameter> ainda desordenado será mantido.
</para>
<note>
<simpara>
Dois elementos são considerados iguais se, e somente se,
<literal>(string) $elem1 === (string) $elem2</literal>. Em palavras:
quando a represetação em string é a mesma.
</simpara>
<simpara>
O primeiro será usado.
</simpara>
</note>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>array</parameter></term>
<listitem>
<para>
O array de entrada.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Retorna o array filtrado.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemplo de <function>array_unique</function></title>
<programlisting role="php">
<![CDATA[
<?php
$input = array("a" => "verde", "vermelho", "b" => "verde", "azul", "vermelho");
@@ -47,9 +67,9 @@ $result = array_unique($input);
print_r($result);
?>
]]>
</programlisting>
&example.outputs;
<screen role="php">
</programlisting>
&example.outputs;
<screen role="php">
<![CDATA[
Array
(
@@ -58,13 +78,13 @@ Array
[2] => vermelho
)
]]>
</screen>
</example>
</para>
<para>
<example>
<title><function>array_unique</function> e tipos</title>
<programlisting role="php">
</screen>
</example>
</para>
<para>
<example>
<title><function>array_unique</function> e tipos</title>
<programlisting role="php">
<![CDATA[
<?php
$input = array(4, "4", "3", 4, 3, "3");
@@ -72,20 +92,20 @@ $result = array_unique($input);
var_dump($result);
?>
]]>
</programlisting>
&example.outputs;
<screen role="php">
</programlisting>
&example.outputs;
<screen role="php">
<![CDATA[
array(2) {
[0] => int(4)
[2] => string(1) "3"
}
]]>
</screen>
</example>
</para>
</refsect1>
</refentry>
</screen>
</example>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:

View File

@@ -1,15 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- EN-Revision: 1.15 Maintainer: narigone Status: ready -->
<!-- CREDITS: lucasr -->
<!-- splitted from ./pt_BR/functions/array.xml, last change in rev 1.1 -->
<!-- last change to 'array-unshift' in en/ tree in rev 1.2 -->
<!-- EN-Revision: 1.16 Maintainer: felipe Status: ready --><!-- CREDITS: narigone, lucasr -->
<refentry xml:id="function.array-unshift" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>array_unshift</refname>
<refpurpose>Adiciona um ou mais elementos no início de um array</refpurpose>
</refnamediv>
<refsect1>
<title>Descrição</title>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>array_unshift</methodname>
<methodparam><type>array</type><parameter role="reference">array</parameter></methodparam>
@@ -23,9 +20,38 @@
mesma ordem. Todas as chaves numéricas serão modificadas para começar a
contar de 0 (zero) enquanto chaves strings permanecerão inalteradas.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
Retorna o novo número de elementos de <parameter>array</parameter>.
<variablelist>
<varlistentry>
<term><parameter>array</parameter></term>
<listitem>
<para>
O array de entrada.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>var</parameter></term>
<listitem>
<para>
A variável a ser adicionada.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Retorna o novo número de elementos em <parameter>array</parameter>.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemplo de <function>array_unshift</function></title>
@@ -52,10 +78,15 @@ Array
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
Veja também <function>array_shift</function>,
<function>array_push</function> e
<function>array_pop</function>.
<simplelist>
<member><function>array_shift</function></member>
<member><function>array_push</function></member>
<member><function>array_pop</function></member>
</simplelist>
</para>
</refsect1>
</refentry>

View File

@@ -1,36 +1,57 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- EN-Revision: 1.12 Maintainer: narigone Status: ready -->
<!-- CREDITS: lucasr -->
<!-- splitted from ./pt_BR/functions/array.xml, last change in rev 1.1 -->
<!-- last change to 'array-values' in en/ tree in rev 1.2 -->
<refentry xml:id="function.array-values" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>array_values</refname>
<refpurpose>Retorna todos os valores de um array</refpurpose>
</refnamediv>
<refsect1>
<title>Descrição</title>
<methodsynopsis>
<type>array</type><methodname>array_values</methodname>
<methodparam><type>array</type><parameter>input</parameter></methodparam>
</methodsynopsis>
<para>
<function>array_values</function> retorna todos os valores do array
<parameter>input</parameter>.
</para>
<para>
<example>
<title>Exemplo de <function>array_values</function></title>
<programlisting role="php">
<!-- EN-Revision: 1.13 Maintainer: felipe Status: ready --><!-- CREDITS: lucasr, narigone -->
<refentry xml:id="function.array-values" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>array_values</refname>
<refpurpose>Retorna todos os valores de um array</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>array_values</methodname>
<methodparam><type>array</type><parameter>input</parameter></methodparam>
</methodsynopsis>
<para>
<function>array_values</function> retorna todos os valores do array
<parameter>input</parameter> num array indexado numericamente.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>input</parameter></term>
<listitem>
<para>
O array.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Retorna um array indexado de valores.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemplo de <function>array_values</function></title>
<programlisting role="php">
<![CDATA[
<?php
$array = array("tamanho" => "G", "cor" => "dourado");
print_r(array_values ($array));
?>
]]>
</programlisting>
&example.outputs;
<screen role="php">
</programlisting>
&example.outputs;
<screen role="php">
<![CDATA[
Array
(
@@ -38,14 +59,19 @@ Array
[1] => dourado
)
]]>
</screen>
</example>
</para>
<para>
Veja também <function>array_keys</function>.
</para>
</refsect1>
</refentry>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>array_keys</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:

View File

@@ -1,31 +1,60 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- EN-Revision: 1.14 Maintainer: narigone Status: ready -->
<!-- CREDITS: lucasr -->
<!-- splitted from ./pt_BR/functions/array.xml, last change in rev 1.1 -->
<!-- last change to 'asort' in en/ tree in rev 1.2 -->
<refentry xml:id="function.asort" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>asort</refname>
<refpurpose>Ordena um array mantendo a associação entre índices e valores</refpurpose>
</refnamediv>
<refsect1>
<title>Descrição</title>
<methodsynopsis>
<type>bool</type><methodname>asort</methodname>
<methodparam><type>array</type><parameter role="reference">array</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>sort_flags</parameter></methodparam>
</methodsynopsis>
<para>
Essa função ordena um array de forma que a correlação entre índices e
valores é mantida. É usada principalmente para ordenar arrays
associativos onde a ordem dos elementos é um fator importante.
</para>
<para>
&return.success;
</para>
<example>
<title>Exemplo de <function>asort</function></title>
<programlisting role="php">
<!-- EN-Revision: 1.15 Maintainer: felipe Status: ready --><!-- CREDITS: lucasr, narigone -->
<refentry xml:id="function.asort" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>asort</refname>
<refpurpose>Ordena um array mantendo a associação entre índices e valores</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>asort</methodname>
<methodparam><type>array</type><parameter role="reference">array</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>sort_flags</parameter></methodparam>
</methodsynopsis>
<para>
Essa função ordena um array de forma que a correlação entre índices e
valores é mantida. É usada principalmente para ordenar arrays
associativos onde a ordem dos elementos é um fator importante.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>array</parameter></term>
<listitem>
<para>
O array de entrada.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>sort_flags</parameter></term>
<listitem>
<para>
Você pode modificar o comportamento da ordenação usando o parâmetro
opcional <parameter>sort_flags</parameter>, para mais detalhes
veja <function>sort</function>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemplo da <function>asort</function></title>
<programlisting role="php">
<![CDATA[
<?php
$frutas = array("d" => "limao", "a" => "laranja", "b" => "banana", "c" => "melancia");
@@ -44,23 +73,26 @@ a = laranja
d = limao
c = melancia
]]>
</screen>
</example>
</screen>
<para>
As frutas foram ordenadas na ordem alfabética, e os índices
associados a cada valor foram mantidos.
</para>
<para>
Você pode modificar o comportamento da ordenação usando o parâmetro
opcional <parameter>sort_flags</parameter>, para mais detalhes
veja <function>sort</function>.
</para>
<para>
Veja também <function>arsort</function>, <function>rsort</function>,
<function>ksort</function> e <function>sort</function>.
</para>
</refsect1>
</refentry>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>arsort</function></member>
<member><function>sort</function></member>
<member><function>ksort</function></member>
<member><function>rsort</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:

View File

@@ -1,51 +1,63 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- EN-Revision: 1.12 Maintainer: narigone Status: ready -->
<!-- CREDITS: lucasr -->
<refentry xml:id="function.compact" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>compact</refname>
<refpurpose>Cria um array contendo variáveis e seus valores</refpurpose>
</refnamediv>
<refsect1>
<title>Descrição</title>
<methodsynopsis>
<type>array</type><methodname>compact</methodname>
<methodparam><type>mixed</type><parameter>varname</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter>...</parameter></methodparam>
</methodsynopsis>
<para>
<function>compact</function> recebe um número variável de
parâmetros. Cada parâmetro pode ser tanto uma string contendo o nome da
variável, como um array com nomes de variáveis. Sendo um
array, ele pode conter outros arrays de nomes de variáveis;
<function>compact</function> trata isso recursivamente.
</para>
<para>
Para cada um dos parâmetros passados, <function>compact</function> procura
uma variável com o nome especificado na tabela de símbolos e a adiciona
no array de saída de forma que o nome da variável será a chave e o seu
conteúdo será o valor para esta chave.
Em resumo, ela faz o oposto de <function>extract</function>.
Retorna um array de saída com todas as variáveis adicionadas a ele.
</para>
<para>
Qualquer string com nome de uma variável que não exista será simplesmente
ignorada.
</para>
<note>
<title>Gotcha</title>
<para>
Devido a <link linkend="language.variables.variable">variáveis
variável</link> não deve ser usado com
<link linkend="language.variables.superglobals">array Superglobal
</link> dentro de funções, as arrays Superglobal não devem ser passadas
dentro de <function>compact</function>.
</para>
</note>
<para>
<example>
<title>Exemplo de <function>compact</function></title>
<programlisting role="php">
<!-- EN-Revision: 1.13 Maintainer: felipe Status: ready --><!-- CREDITS: narigone, lucasr -->
<refentry xml:id="function.compact" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>compact</refname>
<refpurpose>Cria um array contendo variáveis e seus valores</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>compact</methodname>
<methodparam><type>mixed</type><parameter>varname</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter>...</parameter></methodparam>
</methodsynopsis>
<para>
Cria um array contendo variáveis e seus valores.
</para>
<para>
Para cada um dos parâmetros passados, <function>compact</function> procura
uma variável com o nome especificado na tabela de símbolos e a adiciona
no array de saída de forma que o nome da variável será a chave e o seu
conteúdo será o valor para esta chave.
Em resumo, ela faz o oposto de <function>extract</function>.
</para>
<para>
Qualquer string com nome de uma variável que não exista será simplesmente
ignorada.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>varname</parameter></term>
<listitem>
<para>
<function>compact</function> takes a variable number of parameters.
Each parameter can be either a string containing the name of the
variable, or an array of variable names. The array can contain other
arrays of variable names inside it; <function>compact</function>
handles it recursively.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Retorna a saída do array com todas as variáveis adicionadas a ele.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemplo de <function>compact</function></title>
<programlisting role="php">
<![CDATA[
<?php
$cidade = "Sao Paulo";
@@ -69,15 +81,32 @@ Array
[estado] => SP
)
]]>
</screen>
</example>
</para>
<para>
Veja também <function>extract</function>.
</para>
</refsect1>
</refentry>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<title>Gotcha</title>
<para>
Devido a <link linkend="language.variables.variable">variáveis
variável</link> não poder ser usada com <link
linkend="language.variables.superglobals">arrays superglobais</link> do PHP
dentro de funções, os arrays superglobais não podem ser passados
na <function>compact</function>.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>extract</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:

View File

@@ -1,24 +1,39 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- EN-Revision: 1.13 Maintainer: narigone Status: ready -->
<!-- CREDITS: lucasr -->
<!-- splitted from ./pt_BR/functions/array.xml, last change in rev 1.1 -->
<!-- last change to 'current' in en/ tree in rev 1.2 -->
<!-- EN-Revision: 1.14 Maintainer: narigone Status: ready --><!-- CREDITS: lucasr -->
<refentry xml:id="function.current" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>current</refname>
<refpurpose>Retorna o elemento corrente em um array</refpurpose>
</refnamediv>
<refsect1>
<title>Descrição</title>
<methodsynopsis>
<type>mixed</type><methodname>current</methodname>
<methodparam><type>array</type><parameter role="reference">array</parameter></methodparam>
</methodsynopsis>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>mixed</type><methodname>current</methodname>
<methodparam><type>array</type><parameter role="reference">array</parameter></methodparam>
</methodsynopsis>
<para>
Todo array tem um ponteiro interno para o elemento "atual",
o qual é inicializado para apontar para o primeiro elemento inserido em
um array.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>array</parameter></term>
<listitem>
<para>
O array.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
A função <function>current</function> simplesmente retorna
o elemento do array para o qual esse ponteiro interno está apontando.
@@ -27,14 +42,9 @@
<function>current</function> retorna &false;.
</para>
&return.falseproblem;
<note>
<simpara>
Você não será capaz de distinguir o fim de um array de um
elemento <type>boolean</type> &false;. Para percorer um array
que pode conter elementos &false;, veja a função
<function>each</function>.
</simpara>
</note>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemplo do uso de <function>current</function> e amigos</title>
@@ -53,10 +63,29 @@ $mode = current($transport); // $mode = 'plane';
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<simpara>
Você não será capaz de distinguir o fim de um array de um
elemento <type>boolean</type> &false;. Para percorer um array
que pode conter elementos &false;, veja a função
<function>each</function>.
</simpara>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
Veja também <function>end</function>, <function>key</function>,
<function>next</function>, <function>prev</function>,
<function>reset</function> e <function>each</function>.
<simplelist>
<member><function>end</function></member>
<member><function>key</function></member>
<member><function>each</function></member>
<member><function>prev</function></member>
<member><function>reset</function></member>
<member><function>next</function></member>
</simplelist>
</para>
</refsect1>
</refentry>

View File

@@ -1,48 +1,98 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- EN-Revision: 1.14 Maintainer: narigone Status: ready -->
<!-- CREDITS: lucasr -->
<!-- splitted from ./pt_BR/functions/array.xml, last change in rev 1.3 -->
<!-- last change to 'in-array' in en/ tree in rev 1.56 -->
<refentry xml:id="function.in-array" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>in_array</refname>
<refpurpose>Checa se um valor existe em um array</refpurpose>
</refnamediv>
<refsect1>
<title>Descrição</title>
<methodsynopsis>
<type>bool</type><methodname>in_array</methodname>
<methodparam><type>mixed</type><parameter>needle</parameter></methodparam>
<methodparam><type>array</type><parameter>haystack</parameter></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>strict</parameter></methodparam>
</methodsynopsis>
<para>
Procura em <parameter>haystack</parameter> pelo valor
<parameter>needle</parameter> e retorna &true;
se este valor for encontrado no array, e &false; em caso contrário.
</para>
<para>
Se o terceiro parâmetro <parameter>strict</parameter> for
&true; então <function>in_array</function>
também irá checar os <link linkend="language.types">tipos</link> de
<parameter>needle</parameter> em <parameter>haystack</parameter>.
</para>
<note>
<para>
Se <parameter>needle</parameter> for uma string, a comparação é feita
diferenciando caracteres maiúsculos e minúsculos.
</para>
</note>
<note>
<para>
Em versões do PHP mais antigas que 4.2.0 <parameter>needle</parameter>
não pode ser um array.
</para>
</note>
<para>
<example>
<title>Exemplo de <function>in_array</function></title>
<programlisting role="php">
<!-- EN-Revision: 1.15 Maintainer: felipe Status: ready --><!-- CREDITS: narigone, lucasr -->
<refentry xml:id="function.in-array" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>in_array</refname>
<refpurpose>Checa se um valor existe em um array</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>in_array</methodname>
<methodparam><type>mixed</type><parameter>needle</parameter></methodparam>
<methodparam><type>array</type><parameter>haystack</parameter></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>strict</parameter></methodparam>
</methodsynopsis>
<para>
Procura em <parameter>haystack</parameter> pelo valor <parameter>needle</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>needle</parameter></term>
<listitem>
<para>
O valor procurado.
</para>
<note>
<para>
Se <parameter>needle</parameter> for uma string, a comparação é feita
diferenciando caracteres maiúsculos e minúsculos.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>haystack</parameter></term>
<listitem>
<para>
O array.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>strict</parameter></term>
<listitem>
<para>
Se o terceiro parâmetro <parameter>strict</parameter> for &true; então
<function>in_array</function> também irá checar os <link
linkend="language.types">tipos</link> de <parameter>needle</parameter> em
<parameter>haystack</parameter>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Retorna &true; se <parameter>needle</parameter> é encontrado no array,
&false; caso contrário.
</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>4.2.0</entry>
<entry>
<parameter>needle</parameter> pode agora ser um array.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemplo da <function>in_array</function></title>
<programlisting role="php">
<![CDATA[
<?php
$os = array("Mac", "NT", "Irix", "Linux");
@@ -54,22 +104,22 @@ if (in_array("mac", $os)) {
}
?>
]]>
</programlisting>
<para>
A segunda condicional falha pois <function>in_array</function>
diferencia letras minúsculas e maiúsculas. Então, a saída seria:
</para>
<screen>
<![CDATA[
Got Irix
]]>
</screen>
</example>
</para>
</programlisting>
<para>
<example>
<title><function>in_array</function> com checagem de tipos</title>
<programlisting role="php">
A segunda condicional falha pois <function>in_array</function>
diferencia letras minúsculas e maiúsculas. Então, a saída seria:
</para>
<screen>
<![CDATA[
Tem Irix
]]>
</screen>
</example>
</para>
<para>
<example>
<title><function>in_array</function> com checagem de tipos</title>
<programlisting role="php">
<![CDATA[
<?php
$a = array('1.10', 12.4, 1.13);
@@ -82,19 +132,19 @@ if (in_array(1.13, $a, true)) {
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
1.13 encontrado com checagem de tipo
]]>
</screen>
</example>
</para>
<para>
<example>
<title>Exemplo de <function>in_array</function> passando um array para <parameter>needle</parameter></title>
<programlisting role="php">
</screen>
</example>
</para>
<para>
<example>
<title>Exemplo de <function>in_array</function> passando um array para <parameter>needle</parameter></title>
<programlisting role="php">
<![CDATA[
<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');
@@ -110,23 +160,28 @@ if (in_array('o', $a)) {
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
'ph' foi encontrado
'o' foi encontrado
]]>
</screen>
</example>
</para>
<para>
Veja também <function>array_search</function>,
<function>array_key_exists</function> e
<function>isset</function>.
</para>
</refsect1>
</refentry>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>array_search</function></member>
<member><function>isset</function></member>
<member><function>array_key_exists</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:

View File

@@ -1,27 +1,54 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- EN-Revision: 1.15 Maintainer: narigone Status: ready -->
<!-- CREDITS: lucasr -->
<!-- splitted from ./pt_BR/functions/array.xml, last change in rev 1.1 -->
<!-- last change to 'rsort' in en/ tree in rev 1.2 -->
<!-- EN-Revision: 1.16 Maintainer: felipe Status: ready --><!-- CREDITS: narigone, lucasr -->
<refentry xml:id="function.rsort" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>rsort</refname>
<refpurpose>Ordena um array em ordem descrescente</refpurpose>
</refnamediv>
<refsect1>
<title>Descrição</title>
<methodsynopsis>
<type>bool</type><methodname>rsort</methodname>
<methodparam><type>array</type><parameter role="reference">array</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>sort_flags</parameter></methodparam>
</methodsynopsis>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>rsort</methodname>
<methodparam><type>array</type><parameter role="reference">array</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>sort_flags</parameter></methodparam>
</methodsynopsis>
<para>
Essa função ordena um array em ordem descrescente (do maior para o menor).
</para>
&note.no-key-association;
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>array</parameter></term>
<listitem>
<para>
O array de entrada.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>sort_flags</parameter></term>
<listitem>
<para>
Você pode modificar o comportamento da ordenação usando este parâmetro
opcional <parameter>sort_flags</parameter>, para detalhes veja a
<function>sort</function>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemplo de <function>rsort</function></title>
@@ -44,25 +71,31 @@ foreach( $frutas as $chave => $valor ){
2 = laranja
3 = banana
]]>
</screen>
</example>
</para>
</screen>
<para>
As frutas foram ordenadas em ordem alfabética decrescente.
</para>
<para>
Você pode alterar o comportamento da ordenação utilizando o parâmetro
opcional <parameter>sort_flags</parameter>, para mais detalhes
veja <function>sort</function>.
</para>
<para>
Veja também <function>arsort</function>,
<function>asort</function>, <function>ksort</function>,
<function>krsort</function>,
<function>sort</function> e <function>usort</function>.
</para>
</refsect1>
</refentry>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
&note.no-key-association;
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>arsort</function></member>
<member><function>asort</function></member>
<member><function>ksort</function></member>
<member><function>krsort</function></member>
<member><function>sort</function></member>
<member><function>usort</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:

View File

@@ -1,152 +1,280 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- EN-Revision: 1.26 Maintainer: surfmax Status: ready -->
<!-- splitted from ./en/functions/mail.xml, last change in rev 1.2 -->
<refentry xml:id="function.mail" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>mail</refname>
<refpurpose>Envia email</refpurpose>
</refnamediv>
<refsect1>
<title>Descrição</title>
<methodsynopsis>
<type>bool</type><methodname>mail</methodname>
<methodparam><type>string</type><parameter>to</parameter></methodparam>
<methodparam><type>string</type><parameter>subject</parameter></methodparam>
<methodparam><type>string</type><parameter>message</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>additional_headers</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>additional_parameters</parameter></methodparam>
</methodsynopsis>
<simpara>
<function>mail</function> automaticamente envia a mensagem
especificada em <parameter>message</parameter> para o destinatário
especificado em <parameter>to</parameter>. Destinatários múltiplos podem
podem ser especificados colocando uma vírgula entre cada endereço em
<parameter>to</parameter>. Email com anexos e tipos de conteúdo especiais
podem ser enviados usando esta função. Esta é completada via MIME-encoding-
para mais informações, veja
<link xlink:href="&url.email.mime.zend;">
o artigo do Zend </link> ou o <link xlink:href="&url.pear.package;Mail_Mime">
PEAR Mime Classes</link>.
</simpara>
<simpara>
Os seguintes RFC's pode ser úteis:
<link xlink:href="&url.rfc;1896">RFC 1896</link>,
<link xlink:href="&url.rfc;2045">RFC 2045</link>,
<link xlink:href="&url.rfc;2046">RFC 2046</link>,
<link xlink:href="&url.rfc;2047">RFC 2047</link>,
<link xlink:href="&url.rfc;2048">RFC 2048</link>, e
<link xlink:href="&url.rfc;2049">RFC 2049</link>.
</simpara>
<para>
<function>mail</function>devolve &true; se o email foi enviado com
sucesso, &false; se não foi.
</para>
<warning>
<para>
A implentação do Windows de <function>mail</function> difere bastante
da implentação Unix. Primeiro, ele não usa um binary local
para compor mensagens mas apenas opera com sockets diretos o que
significa que uma <literal>MTA</literal> é necessária monitorando um
socket de rede (que pode ser ou o localhost ou uma máquina remota). Segundo,
os cabeçalhos personalizados como <literal>From:</literal>,
<literal>Cc:</literal>, <literal>Bcc:</literal> e <literal>Date:</literal>
<emphasis
role="strong">não</emphasis> são interpretados pelo <literal>MTA</literal>
em primeiro lugar, mas são analizados pelo <literal>PHP</literal>.
<literal>PHP</literal> &lt; 4.3 somente elementos suportados
<literal>Cc:</literal> elemento de cabeçalho (e foi caso-sensitivo). <literal>PHP</literal> &gt;= 4.3
suporta todos os elementos de cabeçalho mensionados e não mais
caso-sensitivo.
</para>
</warning>
<para>
<example>
<title>Enviando email.</title>
<programlisting role="php">
<!-- EN-Revision: 1.37 Maintainer: felipe Status: ready --><!-- CREDITS: surfmax -->
<refentry xml:id="function.mail" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>mail</refname>
<refpurpose>Envia email</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>mail</methodname>
<methodparam><type>string</type><parameter>to</parameter></methodparam>
<methodparam><type>string</type><parameter>subject</parameter></methodparam>
<methodparam><type>string</type><parameter>message</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>additional_headers</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>additional_parameters</parameter></methodparam>
</methodsynopsis>
<para>
Envia um email.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>to</parameter></term>
<listitem>
<para>
Receptor, ou receptores do email.
</para>
<para>
O formato desta string precisa estar de acordo com
<link xlink:href="&url.rfc;2822">RFC 2822</link>. Alguns exemplos:
<simplelist>
<member>user@example.com</member>
<member>user@example.com, anotheruser@example.com</member>
<member>User &lt;user@example.com&gt;</member>
<member>User &lt;user@example.com&gt;, Another User &lt;anotheruser@example.com&gt;</member>
</simplelist>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>subject</parameter></term>
<listitem>
<para>
Assunto do email a ser enviado.
</para>
<caution>
<para>
Não deve conter caractere de nova linha, ou o email pode não ser
enviado corretamente.
</para>
</caution>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>message</parameter></term>
<listitem>
<para>
Mensagem a ser enviada.
</para>
<para>
Cada linha deve ser separada com um LF (\n). Linhas não deve ser maiores
que 70 caracteres.
</para>
<caution>
<para>
(Somente Windows) Quando PHP está usando o servidor SMTP diretamente, e
uma parada total é encontrada no início de uma linha, ela é removida.
Para se defender disto, substitua estas ocorrência com dois pontos seguindos.
<programlisting role="php">
<![CDATA[
<?php
mail("joecool@example.com", "My Subject", "Line 1\nLine 2\nLine 3");
$text = str_replace("\n.", "\n..", $text);
?>
]]>
</programlisting>
</example>
</para>
<simpara>
Se uma string como quarto argumento é passada, esta string é insrida
no fim do cabeçalho. É usado tipicamente para adicionar cabeçalhos
extras. Cabeçalhos extras múltiplos são separados com sinal de retorno
e novalinha.
</simpara>
<note>
<para>
Você deve utilizar <literal>\r\n</literal> para separar headers, embora
alguns agentes de transferência de email Unix podem trabalhar
com uma simples "newline" (nova linha) apenas
(<literal>\n</literal>).
</para>
</note>
</programlisting>
</para>
</caution>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>additional_headers</parameter> (opcional)</term>
<listitem>
<para>
String a ser inserida no final do cabeçalho do email.
</para>
<para>
Esta é normalmente usada para adicionar cabeçalhos extras (From, Cc, e Bcc).
Múltiplos cabeçalhos extra devem ser separados com um CRLF (\r\n).
</para>
<note>
<para>
Quando enviando email, o email <emphasis>precisa</emphasis> conter
um cabeçalho <literal>From</literal>. Este pode ser definido com o
parâmetro <parameter>additional_headers</parameter>, ou um padrão
pode ser definido no &php.ini;.
</para>
<para>
Um deslize fará com que resulte em uma mensagem de erro
similar a <literal>Warning: mail(): "sendmail_from" not
set in php.ini or custom "From:" header missing</literal>.
O cabeçalho <literal>From</literal> define também
<literal>Return-Path</literal> em Windows.
</para>
</note>
<note>
<para>
Se mensagens não são recebiedas, tente usar somente um LF (\n).
Alguns Unix mail transfer agents de má qualidade modificam LF por CRLF
automaticamente (que leva a duplicação de CR se CRLF é usado).
Este deve ser um último recurso, como não está de acordo com
<link xlink:href="&url.rfc;2822">RFC 2822</link>.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>additional_parameters</parameter> (opcional)</term>
<listitem>
<para>
O parâmetro <parameter>additional_parameters</parameter>
pode ser usado para passar um parâmetro adicional para o programa configurado
para usa quando enviando email usando a configuração
<literal>sendmail_path</literal>. Por exemplo, isto pode ser usado para definir
o endereço do envelope remetente quando usando sendmail com a opção do sendmail
<literal>-f</literal>.
</para>
<para>
Você pode precisar adicionar o usuário que seu servidor web executa como para sua
configuração de sendmail para evitar que um cabeçalho 'X-Warning' seja
adicionado à mensagem quando você define o envelope remetente (-f) usando este
método.
Para usuários de sendmail, este arquivo é <filename>/etc/mail/trusted-users</filename>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Retorna &true; se o email foi aceito com sucesso pelo entregado, &false;
caso contrário.
</para>
<para>
É importante notar que somente pelo o email ser aceito pelo entregado,
não significa que o email alcancará o destino esperado.
</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>4.3.0 (Somente Windows)</entry>
<entry>
Todos os cabeçalhos (como From, Cc, Bcc e Date) são suportados, e não são
case-sensitive.
(Como cabeçalhos customizados não são interpretados pela MTA,
são analisados pelo PHP, PHP &lt; 4.3 suportava somente o elemento de cabeçalho Cc
e era case-sensitive).
</entry>
</row>
<row>
<entry>4.2.3</entry>
<entry>
O parâmetro <parameter>additional_parameters</parameter> é desabilitado em
<link linkend="ini.safe-mode">safe_mode</link> e a função
<function>mail</function> emitirá uma mensagem de aviso e
retornará &false; quando usada.
</entry>
</row>
<row>
<entry>4.0.5</entry>
<entry>
O parâmetro <parameter>additional_parameters</parameter> foi adicionado.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Enviando email.</title>
<para>
<example>
<title>Enviando email com cabeçalhos extras.</title>
<programlisting role="php">
Usando <function>mail</function> para enviar um simples email:
</para>
<programlisting role="php">
<![CDATA[
<?php
mail("nobody@example.com", "the subject", $message,
"From: webmaster@{$_SERVER['SERVER_NAME']}\r\n" .
"Reply-To: webmaster@{$_SERVER['SERVER_NAME']}\r\n" .
"X-Mailer: PHP/" . phpversion());
// The message
$message = "Line 1\nLine 2\nLine 3";
// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70);
// Send
mail('caffinated@example.com', 'My Subject', $message);
?>
]]>
</programlisting>
</example>
</para>
</programlisting>
</example>
<example>
<title>Enviando email com cabeçalhos extra.</title>
<para>
A adição de cabeçalhos básicos, dizendo a MUA
os endereços From e Reply-To:
</para>
<programlisting role="php">
<![CDATA[
<?php
$to = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
]]>
</programlisting>
</example>
<example>
<title>Enviando email com um parâmetro adicional da linha de comando.</title>
<para>
O parâmetro <parameter>additional_parameters</parameter> pode ser usado
para passar um parâmetro adicional para o programa configurado
para usar quando enviar email usando a definição de configuração
<literal>sendmail_path</literal>. Por exemplo, isto pode ser usado para
definir o endereço do envelope remetente quando usar sendmail com a opção de
configuração <literal>-f</literal>. Você pode precisar adicionar o usuário que seu servidor web executa como para sua
configuração de sendmail para evitar que um cabeçalho 'X-Warning' seja
adicionado á mensagem quando você define o envelope remetente usando este
método.
<example>
<title>Enviando email com cabeçalhos extras e definindo um parâmetro de uma linha de comando adicional.</title>
<programlisting role="php">
<literal>sendmail_path</literal>.
</para>
<programlisting role="php">
<![CDATA[
<?php
mail("nobody@example.com", "the subject", $message,
"From: webmaster@{$_SERVER['SERVER_NAME']}", "-fwebmaster@{$_SERVER['SERVER_NAME']}");
mail('nobody@example.com', 'the subject', 'the message', null,
'-fwebmaster@example.com');
?>
]]>
</programlisting>
</example>
</para>
<note>
<para>
Este quinto parâmetro foi adicionado no PHP 4.0.5.
Desde o PHP 4.2.3 este parâmetro está desabilitado em
<link linkend="ini.safe-mode">safe_mode</link>
e a função <function>mail</function> irá expor uma mensagem de aviso e
devolverá &false; se você estiver tentando usá-la.
</para>
</note>
</programlisting>
</example>
<example>
<title>Enviando email HTML</title>
<para>
Você pode utilizar strings simples utilizando técnicas para construir
mensagens complexas.
<example>
<title>Enviando email complexo.</title>
<programlisting role="php">
É também possível enviar email HTML com <function>mail</function>.
</para>
<programlisting role="php">
<![CDATA[
<?php
/* Destinatário */
$to = "mary@example.com" . ", " ; // Observe a vírgula
$to .= "kelly@example.com";
// multiple recipients
$to = 'aidan@example.com' . ', '; // note the comma
$to .= 'wez@example.com';
/* assunto */
$subject = "Birthday Reminders for August";
// subject
$subject = 'Birthday Reminders for August';
/* mensagem */
// message
$message = '
<html>
<head>
@@ -173,44 +301,106 @@ $message = '
complexa do que essa sem precisar escapar os carateres
necessários pode ser feito o uso da sintaxe heredoc, consulte tipos-string-sintaxe-heredoc */
/* Para enviar email HTML, você precisa definir o header Content-type. */
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
/* headers adicionais */
$headers .= "To: Mary <mary@example.com>, Kelly <kelly@example.com>\r\n";
$headers .= "From: Birthday Reminder <birthday@example.com>\r\n";
// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";
$headers .= "Cc: birthdayarchive@example.com\r\n";
$headers .= "Bcc: birthdaycheck@example.com\r\n";
/* Enviar o email */
// Mail it
mail($to, $subject, $message, $headers);
?>
]]>
</programlisting>
</example>
</para>
<note>
<para>
Certifique-se que você não tem nenhum caractere novalinha em
<parameter>to</parameter> ou <parameter>subject</parameter>,
ou o email não será enviado corretamente.
</para>
</note>
<note>
<para>
O parâmetro <parameter>to</parameter>não deveria ser um endereço
na forma de &quot;Algo &lt;alguem@example.com&gt;&quot;. O comando de
email poderia não analisar isso adequadamente enquanto se comunica com o
MTA (Particularmente dentro do Windows).
</para>
</note>
</programlisting>
<para>
Veja também <function>imap_mail</function>.
<note>
<para>
Se a intenção é enviar email HTML ou outro formato complexo, é recomendado
usar o pacote PEAR <link xlink:href="&url.pear.package;Mail_Mime">PEAR::Mail_Mime</link>.
</para>
</note>
</para>
</refsect1>
</refentry>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
A implentação do Windows de <function>mail</function> difere bastante
da implentação Unix. Primeiro, ele não usa um binary local
para compor mensagens mas apenas opera com sockets diretos o que
significa que uma <literal>MTA</literal> é necessária monitorando um
socket de rede (que pode ser ou o localhost ou uma máquina remota).
</para>
<para>
Segundo, cabeçalhos customizados como
<literal>From:</literal>,
<literal>Cc:</literal>,
<literal>Bcc:</literal> e
<literal>Date:</literal>
<emphasis role="strong">not</emphasis> são interpretados pela
<literal>MTA</literal>, mas são analiados pelo PHP.
</para>
<para>
Assim como, o parâmetro <parameter>to</parameter> não deve ser um endereço
na forma de &quot;Algo &lt;alguem@example.com&gt;&quot;. O comando de
email poderia não analisar isso adequadamente enquanto se comunica com o
MTA.
</para>
</note>
<note>
<para>
Email com anexos e tipos especiais de conteúdo (e.g. HTML)
podem ser enviado usando esta função. Isto é
melhorado com MIME-encoding - para mais informação, veja este
<link xlink:href="&url.email.mime.zend;">artigo da Zend</link> ou as
classes <link xlink:href="&url.pear.package;Mail_Mime">PEAR Mime</link>.
</para>
</note>
<note>
<para>
Vale a pena notar que a função <function>mail</function> não é
apropriada para grande volume de email em um loop. Esta função abre e
fecha um socket SMTP para cada email, que não é muito eficiente.
</para>
<para>
Para enviar uma grande quantidade de email, veja os pacotes
<link xlink:href="&url.pear.package;Mail">PEAR::Mail</link>, e
<link xlink:href="&url.pear.package;Mail_Queue">PEAR::Mail_Queue</link>.
</para>
</note>
<note>
<para>
O seguintes RFCs podem ser úteis:
<link xlink:href="&url.rfc;1896">RFC 1896</link>,
<link xlink:href="&url.rfc;2045">RFC 2045</link>,
<link xlink:href="&url.rfc;2046">RFC 2046</link>,
<link xlink:href="&url.rfc;2047">RFC 2047</link>,
<link xlink:href="&url.rfc;2048">RFC 2048</link>,
<link xlink:href="&url.rfc;2049">RFC 2049</link>, e
<link xlink:href="&url.rfc;2822">RFC 2822</link>.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>imap_mail</function></member>
<member><link xlink:href="&url.pear.package;Mail">PEAR::Mail</link></member>
<member><link xlink:href="&url.pear.package;Mail_Mime">PEAR::Mail_Mime</link></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables: