Sophie

Sophie

distrib > Mandriva > 2008.1 > i586 > by-pkgid > 703d980c580707c382b4e43e25965bc5 > files > 9704

php-manual-pt_BR-5.2.4-1mdv2008.1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>sprintf</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Manual do PHP"
HREF="index.html"><LINK
REL="UP"
TITLE="String"
HREF="ref.strings.html"><LINK
REL="PREVIOUS"
TITLE="soundex"
HREF="function.soundex.html"><LINK
REL="NEXT"
TITLE="sscanf"
HREF="function.sscanf.html"><META
HTTP-EQUIV="Content-type"
CONTENT="text/html; charset=UTF-8"></HEAD
><BODY
CLASS="refentry"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Manual do PHP</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="function.soundex.html"
ACCESSKEY="P"
>Anterior</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="function.sscanf.html"
ACCESSKEY="N"
>Próxima</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><H1
><A
NAME="function.sprintf"
></A
>sprintf</H1
><DIV
CLASS="refnamediv"
><A
NAME="AEN220543"
></A
><P
>    (PHP 3, PHP 4, PHP 5)</P
>sprintf&nbsp;--&nbsp;Retorna uma string formatada</DIV
><DIV
CLASS="refsect1"
><A
NAME="AEN220546"
></A
><H2
>Descrição</H2
>string <B
CLASS="methodname"
>sprintf</B
> ( string format [, mixed args] )<BR
></BR
><P
>&#13;     Retorna uma string produzida de acordo com a string de formatação
     <CODE
CLASS="parameter"
>format</CODE
>.
    </P
><P
>&#13;     A string e formatação é composta de zero ou mais diretivas:
     caracteres normais (excluindo <TT
CLASS="literal"
>%</TT
>) que são copiados diretamente 
     para o resultado, e <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>especificações de conversão</I
></SPAN
>,
     cada um dos quais resulta em obter o seu próprio parâmetro. 
     Isto se aplica para <B
CLASS="function"
>sprintf()</B
>
     e <A
HREF="function.printf.html"
><B
CLASS="function"
>printf()</B
></A
>.
    </P
><P
>&#13;     Cada especificação de conversão consiste em um símbolo de porcento
     (<TT
CLASS="literal"
>%</TT
>), seguido por um ou mais destes elementos em ordem:
     <P
></P
><OL
TYPE="1"
><LI
><P
>&#13;        Um <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>especificador de prenchimento</I
></SPAN
> opcional que diz
        qual caractere será usado para prencher o resultado para
        o tamanho certo. Isto pode ser um espaço ou
        <TT
CLASS="literal"
>0</TT
> (zero character). O padrão é prencher com
        espaços. Um caractere alternativo de prenchimento pode
        ser especificado colocando uma aspa simples (<TT
CLASS="literal"
>'</TT
>)
        antes. Veja os exemplos abaixo.
       </P
></LI
><LI
><P
>&#13;        Um <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>especificador de alinhamento</I
></SPAN
> opcional que diz se o resultado
        deve ser alinhado a esquerda ou a direita.
        O padrão é alinhar a direita; um caractere <TT
CLASS="literal"
>-</TT
>
        fará com que seja alinhado a esquerda.
       </P
></LI
><LI
><P
>&#13;        Um número opcional, um <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>especificador de tamanho</I
></SPAN
>
        que diz quantos caracteres (mínimo) deve resultar desta conversão.
       </P
></LI
><LI
><P
>&#13;        Um <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>especificador de precisão</I
></SPAN
> opcional que diz
        quantos digitos decimais devem ser mostrados para números de ponto flutuante.
        Esta opção não tem efeito para outros tipos que não sejam
        <A
HREF="language.types.float.html"
><B
CLASS="type"
>float</B
></A
>. (Outra função útil para formatar números é
        <A
HREF="function.number-format.html"
><B
CLASS="function"
>number_format()</B
></A
>.)
       </P
></LI
><LI
><P
>&#13;        Um <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>especificador de tipo</I
></SPAN
> que diz que o argumento deve ser
        tratado como do tipo. Os tipos possivéis são:
        <P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
>&#13;          <TT
CLASS="literal"
>%</TT
> - Um caractere porcento. Não
          é requerido neenhum argumento.
         </TD
></TR
><TR
><TD
>&#13;          <TT
CLASS="literal"
>b</TT
> - O argumento é tratado com um inteiro,
          e mostrado como um binário.
         </TD
></TR
><TR
><TD
>&#13;          <TT
CLASS="literal"
>c</TT
> - O argumento é tratado como um inteiro,
          e mostrado como o caractere ASCII correspondente.
         </TD
></TR
><TR
><TD
>&#13;          <TT
CLASS="literal"
>d</TT
> - O argumento é tratado como um inteiro,
          e mostrado como um número decimal com sinal.
         </TD
></TR
><TR
><TD
>&#13;          <TT
CLASS="literal"
>u</TT
> - O argumento é tratado com um inteiro,
          e mostrado como um número decimal sem sinal.
         </TD
></TR
><TR
><TD
>&#13;          <TT
CLASS="literal"
>f</TT
> - O argumento é tratado como um <A
HREF="language.types.float.html"
><B
CLASS="type"
>float</B
></A
>,
          e mostrado como um número de ponto flutuante.
         </TD
></TR
><TR
><TD
>&#13;          <TT
CLASS="literal"
>o</TT
> - O argumento é tratado com um inteiro,
          e mostrado como un número octal.
         </TD
></TR
><TR
><TD
>&#13;          <TT
CLASS="literal"
>s</TT
> - O argumento é tratado e mostrado como
          uma string.
         </TD
></TR
><TR
><TD
>&#13;          <TT
CLASS="literal"
>x</TT
> - O argumento é tratado como um inteiro,
          e mostrado como um número hexadecimal
          (com as letras minúsculas).
         </TD
></TR
><TR
><TD
>&#13;          <TT
CLASS="literal"
>X</TT
> - O argumento é tratado como um inteiro,
          e mostrado como um número hexadecimal
          (com as letras maiúsculas).
         </TD
></TR
></TBODY
></TABLE
><P
></P
>
       </P
></LI
></OL
>
    </P
><P
>&#13;     Apartir do PHP 4.0.6 a string de formatação suporta
     numeração/troca. Aqui esta um exemplo:
     <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN220610"
></A
><P
><B
>Exemplo 1. Troca de argumentos</B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br />$format </font><font color="#007700">= </font><font color="#DD0000">"There are %d monkeys in the %s"</font><font color="#007700">;<br /></font><font color="#0000BB">printf</font><font color="#007700">(</font><font color="#0000BB">$format</font><font color="#007700">,</font><font color="#0000BB">$num</font><font color="#007700">,</font><font color="#0000BB">$location</font><font color="#007700">);<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
>
     Este deve mostrar, "There are 5 monkeys in the tree". Mas 
     imagine que nós estejamos criando a string de formatação em um arquivo separado,
     normalmente para internacionalizar e rescrevemos como:
     <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN220613"
></A
><P
><B
>Exemplo 2. Troca de argumentos</B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br />$format </font><font color="#007700">= </font><font color="#DD0000">"The %s contains %d monkeys"</font><font color="#007700">;<br /></font><font color="#0000BB">printf</font><font color="#007700">(</font><font color="#0000BB">$format</font><font color="#007700">,</font><font color="#0000BB">$num</font><font color="#007700">,</font><font color="#0000BB">$location</font><font color="#007700">);<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
>
     Agora nós temos um problema. A ordem dos argumentos
     na string de formatação não combina com os argumentos no código.
     Nós gostariamos de deixar o código como esta e simplesmente
     indicar na string de formatação quais argumentos pertencem aonde.
     Podemos escrever a string de formatação assim:
     <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN220616"
></A
><P
><B
>Exemplo 3. Troca de argumento</B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br />$format </font><font color="#007700">= </font><font color="#DD0000">"The %2\$s contains %1\$d monkeys"</font><font color="#007700">;<br /></font><font color="#0000BB">printf</font><font color="#007700">(</font><font color="#0000BB">$format</font><font color="#007700">,</font><font color="#0000BB">$num</font><font color="#007700">,</font><font color="#0000BB">$location</font><font color="#007700">);<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
>
     Um beneficio adicional disto é ue você pode repetir os especificadores de
     conversão sem adicionar mais argumentos em seu código. Por exemplo:
     <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN220619"
></A
><P
><B
>Exemplo 4. Troca de argumento</B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br />$format </font><font color="#007700">= </font><font color="#DD0000">"The %2\$s contains %1\$d monkeys.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;That's a nice %2\$s full of %1\$d monkeys."</font><font color="#007700">;<br /></font><font color="#0000BB">printf</font><font color="#007700">(</font><font color="#0000BB">$format</font><font color="#007700">, </font><font color="#0000BB">$num</font><font color="#007700">, </font><font color="#0000BB">$location</font><font color="#007700">);<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
>
    </P
><P
>&#13;     Veja também <A
HREF="function.printf.html"
><B
CLASS="function"
>printf()</B
></A
>,
     <A
HREF="function.sscanf.html"
><B
CLASS="function"
>sscanf()</B
></A
>, <A
HREF="function.fscanf.html"
><B
CLASS="function"
>fscanf()</B
></A
>,
     <A
HREF="function.vsprintf.html"
><B
CLASS="function"
>vsprintf()</B
></A
> e
     <A
HREF="function.number-format.html"
><B
CLASS="function"
>number_format()</B
></A
>.
    </P
></DIV
><DIV
CLASS="refsect1"
><A
NAME="AEN220628"
></A
><H2
>Examplos</H2
><P
>&#13;     <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN220631"
></A
><P
><B
>Exemplo 5. <B
CLASS="function"
>sprintf()</B
>: inteiros prenchidos com zero</B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br />$isodate </font><font color="#007700">= </font><font color="#0000BB">sprintf</font><font color="#007700">(</font><font color="#DD0000">"%04d-%02d-%02d"</font><font color="#007700">, </font><font color="#0000BB">$year</font><font color="#007700">, </font><font color="#0000BB">$month</font><font color="#007700">, </font><font color="#0000BB">$day</font><font color="#007700">);<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
>
     <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN220635"
></A
><P
><B
>Exemplo 6. <B
CLASS="function"
>sprintf()</B
>: formatando dinheiro</B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br />$money1 </font><font color="#007700">= </font><font color="#0000BB">68.75</font><font color="#007700">;<br /></font><font color="#0000BB">$money2 </font><font color="#007700">= </font><font color="#0000BB">54.35</font><font color="#007700">;<br /></font><font color="#0000BB">$money </font><font color="#007700">= </font><font color="#0000BB">$money1 </font><font color="#007700">+ </font><font color="#0000BB">$money2</font><font color="#007700">;<br /></font><font color="#FF8000">// echo $money irá mostrar "123.1";<br /></font><font color="#0000BB">$formatted </font><font color="#007700">= </font><font color="#0000BB">sprintf</font><font color="#007700">(</font><font color="#DD0000">"%01.2f"</font><font color="#007700">, </font><font color="#0000BB">$money</font><font color="#007700">);<br /></font><font color="#FF8000">// echo $formatted irá mostrar "123.10"<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
>
    </P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="function.soundex.html"
ACCESSKEY="P"
>Anterior</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Principal</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="function.sscanf.html"
ACCESSKEY="N"
>Próxima</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>soundex</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="ref.strings.html"
ACCESSKEY="U"
>Acima</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>sscanf</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>