Sophie

Sophie

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

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
>fopen</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="Filesystem (Sistema de arquivos)"
HREF="ref.filesystem.html"><LINK
REL="PREVIOUS"
TITLE="fnmatch"
HREF="function.fnmatch.html"><LINK
REL="NEXT"
TITLE="fpassthru"
HREF="function.fpassthru.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.fnmatch.html"
ACCESSKEY="P"
>Anterior</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="function.fpassthru.html"
ACCESSKEY="N"
>Próxima</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><H1
><A
NAME="function.fopen"
></A
>fopen</H1
><DIV
CLASS="refnamediv"
><A
NAME="AEN49289"
></A
><P
>    (PHP 3, PHP 4, PHP 5)</P
>fopen&nbsp;--&nbsp;Abre um arquivo ou uma URL</DIV
><DIV
CLASS="refsect1"
><A
NAME="AEN49292"
></A
><H2
>Descrição</H2
>resource <B
CLASS="methodname"
>fopen</B
> ( string filename, string mode [, int use_include_path [, resource zcontext]] )<BR
></BR
><P
>&#13;     <B
CLASS="function"
>fopen()</B
> conecta um recurso nomeado, especificado
     em <CODE
CLASS="parameter"
>filename</CODE
> para um stream. Se
     <CODE
CLASS="parameter"
>filename</CODE
> está na forma "protocolo://...",
     é assumido que seja uma URL e o PHP irá procurar por um manipulador
     de protocolo (também conhecido como wrapper) conforme o prefixo. Se nenhum
     wrapper para o protocolo estiver registrado, o PHP irá emitir
     um alerta para ajudá-lo a rastrear problemas potenciais em seu script,
     presumindo que <CODE
CLASS="parameter"
>filename</CODE
>
     é um nome de arquivo comum.
    </P
><P
>&#13;     Se o PHP decidir que <CODE
CLASS="parameter"
>filename</CODE
> se refere
     a um arquivo local, então ele tentará abrir o stream para aquele arquivo.
     Esse arquivo precisa ser acessível pelo PHP, então você precisa certificar-se que
     as permissões de acesso que garantam esse acesso.
     Se você está com <A
HREF="features.safe-mode.html#ini.safe-mode"
>safe mode</A
> ativado
     ou <A
HREF="features.safe-mode.html#ini.open-basedir"
>open_basedir</A
>, essas
     restrições serão aplicadas.
    </P
><P
>&#13;     Se o PHP decidir que <CODE
CLASS="parameter"
>filename</CODE
> se refere
     a um protocolo registrado, e que o protocolo está registrado como um
     URL de rede, o PHP irá verificar se
     <A
HREF="ref.filesystem.html#ini.allow-url-fopen"
>allow_url_fopen</A
> está
     ativado. Se ele estiver desligado, o PHP irá emitir um alerta e
     a chamada a fopen irá falhar.
    </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
      A lista de protocolos registrados pode ser encontrada em <A
HREF="wrappers.html"
>Apêndice N</A
>.
      Alguns protocolos (também conhecidos como <TT
CLASS="literal"
>wrappers</TT
>) suportam
      opções de <TT
CLASS="literal"
>context</TT
> e/ou <TT
CLASS="filename"
>php.ini</TT
>.
      Veja na página específica do protocolo em uso para uma lista de opções
      possíveis. (por exemplo, o valor <TT
CLASS="filename"
>php.ini</TT
>
      <TT
CLASS="literal"
>user_agent</TT
> utilizado pelo wrapper <TT
CLASS="literal"
>http</TT
>)
      Para uma descrição de <TT
CLASS="literal"
>contexts</TT
> e o parâmetro
      <CODE
CLASS="parameter"
>zcontext</CODE
>, veja <A
HREF="ref.stream.html"
>Referência CLX, <I
>Stream Functions</I
></A
>.
     </P
></BLOCKQUOTE
></DIV
><P
>&#13;     O parâmetro <CODE
CLASS="parameter"
>mode</CODE
> configura o tipo de acesso
     que você precisa no stream. Pode ser um dos seguintes:
     <DIV
CLASS="table"
><A
NAME="AEN49335"
></A
><P
><B
>Tabela 1. 
       Lista dos possíveis modos de <B
CLASS="function"
>fopen()</B
>
       para o parâmetro <CODE
CLASS="parameter"
>mode</CODE
>
      </B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><THEAD
><TR
><TH
><CODE
CLASS="parameter"
>mode</CODE
></TH
><TH
>Descrição</TH
></TR
></THEAD
><TBODY
><TR
><TD
><TT
CLASS="literal"
>'r'</TT
></TD
><TD
>&#13;          Abre somente leitura; coloca o ponteiro do arquico no
          começo do arquivo.
         </TD
></TR
><TR
><TD
><TT
CLASS="literal"
>'r+'</TT
></TD
><TD
>&#13;          Abre para leitura e escrita; coloca o ponteiro do arquivo no
          começo do arquivo.
         </TD
></TR
><TR
><TD
><TT
CLASS="literal"
>'w'</TT
></TD
><TD
>&#13;          Abre para escrita somente; coloca o ponteiro do arquivo no
          começo do arquivo e diminui (trunca) o tamanho do arquivo para zero.
          Se o arquivo não existe, tenta criá-lo.
         </TD
></TR
><TR
><TD
><TT
CLASS="literal"
>'w+'</TT
></TD
><TD
>&#13;          Abre o arquivo para leitura e escrita; coloca o ponteiro do arquivo no
          começo e diminui (trunca) o tamanho do arquivo para
          zero. Se o arquivo não existe, tenta criá-lo.
         </TD
></TR
><TR
><TD
><TT
CLASS="literal"
>'a'</TT
></TD
><TD
>&#13;          Abre para escrita somente; coloca o ponteiro do arquivo no
          final. Se o arquivo não existe, tenta criá-lo.
         </TD
></TR
><TR
><TD
><TT
CLASS="literal"
>'a+'</TT
></TD
><TD
>&#13;          Abre o arquivo para leitura e escrita; coloca o ponteiro do arquivo no
          final. Se o arquivo não existe, tenta
          criá-lo.
         </TD
></TR
><TR
><TD
><TT
CLASS="literal"
>'x'</TT
></TD
><TD
>&#13;          Cria e abre o arquivo para escrita somente; coloca o ponteiro no
          início do arquivo. Se o arquivo já existe, a chamada a
          <B
CLASS="function"
>fopen()</B
> irá falhar, retornando <TT
CLASS="constant"
><B
>FALSE</B
></TT
> e
          gerando um erro nível <TT
CLASS="constant"
><B
>E_WARNING</B
></TT
>. Se
          o arquivo não existe, tenta criá-lo. Isto é o equivalente
          a informar as flags <TT
CLASS="literal"
>O_EXCL|O_CREAT</TT
> numa
          chamada a <TT
CLASS="literal"
>open(2)</TT
>. Esta opção é
          suportada no PHP 4.3.2 e posteriores, e somente funciona em arquivos locais.
         </TD
></TR
><TR
><TD
><TT
CLASS="literal"
>'x+'</TT
></TD
><TD
>&#13;          Cria e abre um arquivo para escrita e leitura; coloca o ponteiro do
          arquivo no início. Se o arquivo já existe, a chamada a
          <B
CLASS="function"
>fopen()</B
> irá falhar, retornando <TT
CLASS="constant"
><B
>FALSE</B
></TT
> e
          gerando um erro nível <TT
CLASS="constant"
><B
>E_WARNING</B
></TT
>. Se
          o arquivo não existe, tenta criá-lo. Isto é o equivalente
          a informar as flags <TT
CLASS="literal"
>O_EXCL|O_CREAT</TT
> numa
          chamada a <TT
CLASS="literal"
>open(2)</TT
>. Esta opção é
          suportada no PHP 4.3.2 e posteriores, e somente funciona em arquivos locais.
         </TD
></TR
></TBODY
></TABLE
></DIV
>
    </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
      Sistemas operacionais diferentes tem convenções de delimitação de linhas
      diferentes. Quando você escreve num arquivo e deseja inserir uma quebra de
      linha, você precisa utilizar o(s) caractere(s) de fim de linha adequado(s) em seu
      sistema operacional. Sistemas baseados no Unix utilizam <TT
CLASS="literal"
>\n</TT
> como
      final de linha, sistemas baseados no Windows usam <TT
CLASS="literal"
>\r\n</TT
>
      e sistemas baseados no Macintosh usam
      <TT
CLASS="literal"
>\r</TT
>.
     </P
><P
>&#13;      Se escrever caracteres de fim de linha inadequados em seus arquivos, eles
      deverão "parecer engraçados" quando você os abrir em outras
      aplicações.
     </P
><P
>&#13;      O Windows oferece uma flag de tradução do modo texto (<TT
CLASS="literal"
>'t'</TT
>)
      que traduz, transparentemente, <TT
CLASS="literal"
>\n</TT
> para
      <TT
CLASS="literal"
>\r\n</TT
> quando trabalhando no arquivo. Em contraste, você
      também pode utilizar <TT
CLASS="literal"
>'b'</TT
> para forçar o modo binário, que não
      irá traduzir o arquivo. Para usar essas flags, informe ou
      <TT
CLASS="literal"
>'b'</TT
> ou <TT
CLASS="literal"
>'t'</TT
> como o último caracter
      no parâmetro <CODE
CLASS="parameter"
>mode</CODE
>.
     </P
><P
>&#13;      O modo do sistema de tradução default depende da versao da SAPI sob o qual você
      está usando o PHP, então é encorajado a sempre utilizar a flag apropriada
      por razões de portabilidade. Você deve usar o modo <TT
CLASS="literal"
>'t'</TT
>
      se estiver trabalhando em arquivos texto simples e utilizar 
      <TT
CLASS="literal"
>\n</TT
> para delimitar as linhas em seu script, de forma que
      você pode esperar que eles sejam lidos em outras aplicações como o Notepad. Você
      deve usar <TT
CLASS="literal"
>'b'</TT
> em todos os outros casos.
     </P
><P
>&#13;      Se você não especificar a flag 'b' quando trabalhando com arquivos binários, você
      pode experimentar problemas estranhos com seus dados, incluindo arquivos de imagens
      danificados e problemas estranhos com os caracteres <TT
CLASS="literal"
>\r\n</TT
>.
     </P
><P
>&#13;      <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>Para portabilidade, é estremamente recomendado que você sempre
       utilize a flag 'b' quando abrindo arquivos com <B
CLASS="function"
>fopen()</B
>.
      </I
></SPAN
>
     </P
><P
>&#13;      <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>Novamente, por portabilidade, é estremamente recomendável que você
       re-escreva seu código nas situações em que o modo <TT
CLASS="literal"
>'t'</TT
>
       deva ser utilizado para corrigir os fim de linha, onde o modo 'b' não
       deva ser utilizado.
      </I
></SPAN
>
     </P
><P
>&#13;      <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>A partir do PHP 4.3.2, o modo padrão é configurado para binário em todas
       as plataformas que distinguem entre modo texto e binário. Se você está
       tendo problemas em seus scripts depois de um upgrade, tente acrescentar a
       flag<TT
CLASS="literal"
>'t'</TT
> como um paliativo até que você tenha tornado seus
       scripts portáveis como mencionado acima.
      </I
></SPAN
>
     </P
></BLOCKQUOTE
></DIV
><P
>&#13;     Você pode usar o terceiro pparâmetro opcional como "1", se você
     quiser procurar pelo arquivo no <A
HREF="ini.core.html#ini.include-path"
>include_path</A
> também.
    </P
><P
>&#13;     Se a abertura falhar, a função retorna <TT
CLASS="constant"
><B
>FALSE</B
></TT
> e um erro nível
     <TT
CLASS="constant"
><B
>E_WARNING</B
></TT
> é gerado. Você pode utilizar
     <A
HREF="language.operators.errorcontrol.html"
>@</A
> para
     suprimir esse alerta.
    </P
><P
>&#13;     <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN49424"
></A
><P
><B
>Exemplo 1. exemplo do <B
CLASS="function"
>fopen()</B
></B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br />$handle </font><font color="#007700">= </font><font color="#0000BB">fopen </font><font color="#007700">(</font><font color="#DD0000">"/home/rasmus/file.txt"</font><font color="#007700">, </font><font color="#DD0000">"r"</font><font color="#007700">);<br /></font><font color="#0000BB">$handle </font><font color="#007700">= </font><font color="#0000BB">fopen </font><font color="#007700">(</font><font color="#DD0000">"/home/rasmus/file.gif"</font><font color="#007700">, </font><font color="#DD0000">"wb"</font><font color="#007700">);<br /></font><font color="#0000BB">$handle </font><font color="#007700">= </font><font color="#0000BB">fopen </font><font color="#007700">(</font><font color="#DD0000">"http://www.example.com/"</font><font color="#007700">, </font><font color="#DD0000">"r"</font><font color="#007700">);<br /></font><font color="#0000BB">$handle </font><font color="#007700">= </font><font color="#0000BB">fopen </font><font color="#007700">(</font><font color="#DD0000">"ftp://user:password@example.com/somefile.txt"</font><font color="#007700">, </font><font color="#DD0000">"w"</font><font color="#007700">);<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
>
    </P
><P
>&#13;     Se você está tendo problemas com a leitura e gravação para
     arquivos e você está usando a versão de modulo de servidor do PHP, lembre-se
     de que os arquivos e diretórios que você está usando precisam ser 
     acessíveis ao processo do servidor HTTP.
    </P
><P
>&#13;     Na plataforma Windows, tenha cuidado para usar uma segunda barra invertida
     (escape) nos caminhos de arquivos, ou usar a barra normal.
     <DIV
CLASS="informalexample"
><P
></P
><A
NAME="AEN49430"
></A
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br />$handle </font><font color="#007700">= </font><font color="#0000BB">fopen </font><font color="#007700">(</font><font color="#DD0000">"c:\\data\\info.txt"</font><font color="#007700">, </font><font color="#DD0000">"r"</font><font color="#007700">);<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
><P
></P
></DIV
>
    </P
><P
>&#13;     Veja também: <A
HREF="wrappers.html"
>Apêndice N</A
>,
     <A
HREF="function.fclose.html"
><B
CLASS="function"
>fclose()</B
></A
>,
     <A
HREF="function.fgets.html"
><B
CLASS="function"
>fgets()</B
></A
>,
     <A
HREF="function.fread.html"
><B
CLASS="function"
>fread()</B
></A
>,
     <A
HREF="function.fwrite.html"
><B
CLASS="function"
>fwrite()</B
></A
>,
     <A
HREF="function.fsockopen.html"
><B
CLASS="function"
>fsockopen()</B
></A
>,
     <A
HREF="function.file.html"
><B
CLASS="function"
>file()</B
></A
>,
     <A
HREF="function.file-exists.html"
><B
CLASS="function"
>file_exists()</B
></A
>,
     <A
HREF="function.is-readable.html"
><B
CLASS="function"
>is_readable()</B
></A
>,
     <A
HREF="function.stream-set-timeout.html"
><B
CLASS="function"
>stream_set_timeout()</B
></A
> e
     <A
HREF="function.popen.html"
><B
CLASS="function"
>popen()</B
></A
>.
    </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.fnmatch.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.fpassthru.html"
ACCESSKEY="N"
>Próxima</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>fnmatch</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="ref.filesystem.html"
ACCESSKEY="U"
>Acima</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>fpassthru</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>