Files
archived-doc-pt-br/features/remote-files.xml
2025-08-29 20:19:29 -03:00

116 lines
3.8 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: a0ae28d3bc85f927c22649ebd9a590b921534b7d Maintainer: ae Status: ready --><!-- CREDITS: pokemaobr,narigone,ae -->
<chapter xml:id="features.remote-files" xmlns="http://docbook.org/ns/docbook">
<title>Usando arquivos remotos</title>
<para>
Enquanto <option>allow_url_fopen</option> estiver disponível no arquivo
&php.ini;, você pode usar URLs <acronym>HTTP</acronym> e <acronym>FTP</acronym>
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 <function>include</function>,
<function>include_once</function>, <function>require</function> e
<function>require_once</function>
(<option>allow_url_include</option> precisa estar habilitado para isto).
Veja <xref linkend="wrappers"/> para mais informações sobre protocolos
suportados pelo PHP.
</para>
<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.
</para>
<para>
<example>
<title>Pegando o título de uma página remota</title>
<programlisting role="php">
<![CDATA[
<?php
$file = fopen ("http://www.example.com/", "r");
if (!$file) {
echo "<p>Incapaz de abrir arquivo remoto.\n";
exit;
}
while (!feof ($file)) {
$line = fgets ($file, 1024);
/* Isso só funciona se o título e suas tags estiverem na mesma linha */
if (eregi ("<title>(.*)</title>", $line, $out)) {
$title = $out[1];
break;
}
}
fclose($file);
?>
]]>
</programlisting>
</example>
</para>
<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 <function>fopen</function>
falhará.
</para>
<para>
Para conectar como um usuário diferente de 'anonymous', você precisa especificar
o nome de usuário (e possivelmente a senha) dentro da URL, como
'<literal>ftp://user:password@ftp.example.com/path/to/file</literal>'.
(Você pode usar o mesmo tipo de sintaxe para acessar arquivos via
<acronym>HTTP</acronym> quando eles requerem autenticação Basic).
</para>
<para>
<example>
<title>Guardando informação em um servidor remoto</title>
<programlisting role="php">
<![CDATA[
<?php
$file = fopen ("ftp://ftp.example.com/incoming/outputfile", "w");
if (!$file) {
echo "<p>Incapaz de abrir arquivo remoto para escrita.\n";
exit;
}
/* Escreva informações aqui. */
fwrite ($file, $_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($file);
?>
]]>
</programlisting>
</example>
</para>
<para>
<note>
<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 <function>fopen</function> falhará
se o arquivo remoto já existir. Para fazer logs distribuídos
dessa maneira, você deve dar uma olhada na função <function>syslog</function>.
</para>
</note>
</para>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->