<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/features.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'features.remote-files.php',
    1 => 'Usando arquivos remotos',
    2 => 'Usando arquivos remotos',
  ),
  'up' => 
  array (
    0 => 'features.php',
    1 => 'Caracter&iacute;sticas',
  ),
  'prev' => 
  array (
    0 => 'features.file-upload.errors.seealso.php',
    1 => 'Veja Tamb&eacute;m',
  ),
  'next' => 
  array (
    0 => 'features.connection-handling.php',
    1 => 'Tratamento de Conex&otilde;es',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    'path' => 'features/remote-files.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="features.remote-files" class="chapter">
  <h1 class="title">Usando arquivos remotos</h1>


  <p class="para">
   Enquanto <strong class="option unknown">allow_url_fopen</strong> estiver disponível no arquivo
   <var class="filename">php.ini</var>, você pode usar URLs <abbr title="Hypertext Transfer Protocol">HTTP</abbr> e <abbr title="File Transfer Protocol">FTP</abbr>
   com a maioria das funções
   que recebem um nome de arquivo como parâmetro. Além disso, URLs podem ser
   usadas com as funções <span class="function"><a href="function.include.php" class="function">include</a></span>,
   <span class="function"><a href="function.include-once.php" class="function">include_once</a></span>, <span class="function"><a href="function.require.php" class="function">require</a></span> e
   <span class="function"><a href="function.require-once.php" class="function">require_once</a></span>
   (<strong class="option unknown">allow_url_include</strong> precisa estar habilitado para isto).
   Veja <a href="wrappers.php" class="xref">Protocolos e empacotadores suportados</a> para mais informações sobre protocolos
   suportados pelo PHP.
  </p>
  <p class="para">
   Por exemplo, você pode usar isso para abrir um arquivo em um web server remoto,
   avaliar a saída para a informação que você precisa, e então usar a informação em uma
   query de banco de dados, ou simplesmente mostrar em um estilo que combine com o resto
   do seu website.
  </p>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Exemplo #1 Pegando o título de uma página remota</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$file </span><span style="color: #007700">= </span><span style="color: #0000BB">fopen </span><span style="color: #007700">(</span><span style="color: #DD0000">"http://www.example.com/"</span><span style="color: #007700">, </span><span style="color: #DD0000">"r"</span><span style="color: #007700">);<br />if (!</span><span style="color: #0000BB">$file</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">"&lt;p&gt;Incapaz de abrir arquivo remoto.\n"</span><span style="color: #007700">;<br />    exit;<br />}<br />while (!</span><span style="color: #0000BB">feof </span><span style="color: #007700">(</span><span style="color: #0000BB">$file</span><span style="color: #007700">)) {<br />    </span><span style="color: #0000BB">$line </span><span style="color: #007700">= </span><span style="color: #0000BB">fgets </span><span style="color: #007700">(</span><span style="color: #0000BB">$file</span><span style="color: #007700">, </span><span style="color: #0000BB">1024</span><span style="color: #007700">);<br />    </span><span style="color: #FF8000">/* Isso só funciona se o título e suas tags estiverem na mesma linha */<br />    </span><span style="color: #007700">if (</span><span style="color: #0000BB">eregi </span><span style="color: #007700">(</span><span style="color: #DD0000">"&lt;title&gt;(.*)&lt;/title&gt;"</span><span style="color: #007700">, </span><span style="color: #0000BB">$line</span><span style="color: #007700">, </span><span style="color: #0000BB">$out</span><span style="color: #007700">)) {<br />        </span><span style="color: #0000BB">$title </span><span style="color: #007700">= </span><span style="color: #0000BB">$out</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">];<br />        break;<br />    }<br />}<br /></span><span style="color: #0000BB">fclose</span><span style="color: #007700">(</span><span style="color: #0000BB">$file</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
  <p class="para">
   Você também pode escrever arquivos em um servidor FTP (presumindo que
   você se conectou como um usuário com os direitos de acesso corretos). Você
   só pode criar arquivos novos usando esse método. Se você tentar sobrescrever
   um arquivo que já existe, a chamada para <span class="function"><a href="function.fopen.php" class="function">fopen()</a></span>
   falhará.
  </p>
  <p class="para">
   Para conectar como um usuário diferente de &#039;anonymous&#039;, você precisa especificar
   o nome de usuário (e possivelmente a senha) dentro da URL, como
   &#039;<code class="literal">ftp://user:password@ftp.example.com/path/to/file</code>&#039;.
   (Você pode usar o mesmo tipo de sintaxe para acessar arquivos via
   <abbr title="Hypertext Transfer Protocol">HTTP</abbr> quando eles requerem autenticação Basic).
  </p>
  <p class="para">
   <div class="example" id="example-2">
    <p><strong>Exemplo #2 Guardando informação em um servidor remoto</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$file </span><span style="color: #007700">= </span><span style="color: #0000BB">fopen </span><span style="color: #007700">(</span><span style="color: #DD0000">"ftp://ftp.example.com/incoming/outputfile"</span><span style="color: #007700">, </span><span style="color: #DD0000">"w"</span><span style="color: #007700">);<br />if (!</span><span style="color: #0000BB">$file</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">"&lt;p&gt;Incapaz de abrir arquivo remoto para escrita.\n"</span><span style="color: #007700">;<br />    exit;<br />}<br /></span><span style="color: #FF8000">/* Escreva informações aqui. */<br /></span><span style="color: #0000BB">fwrite </span><span style="color: #007700">(</span><span style="color: #0000BB">$file</span><span style="color: #007700">, </span><span style="color: #0000BB">$_SERVER</span><span style="color: #007700">[</span><span style="color: #DD0000">'HTTP_USER_AGENT'</span><span style="color: #007700">] . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">fclose </span><span style="color: #007700">(</span><span style="color: #0000BB">$file</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
  <p class="para">
   <blockquote class="note"><p><strong class="note">Nota</strong>: 
    <p class="para">
     Você talvez tenha tido a idéia, pelo exemplo acima, de usar
     essa técnica para escrever para um arquivo de log remoto. Infelizmente
     isso não funcionaria porque a chamada a <span class="function"><a href="function.fopen.php" class="function">fopen()</a></span> falhará
     se o arquivo remoto já existir. Para fazer logs distribuídos
     dessa maneira, você deve dar uma olhada na função <span class="function"><a href="function.syslog.php" class="function">syslog()</a></span>.
    </p>
   </p></blockquote>
  </p>

 </div>
<?php manual_footer($setup); ?>