1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-23 23:12:09 +01:00
Files
archived-doc-es/features/remote-files.xml

119 lines
3.6 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: a0ae28d3bc85f927c22649ebd9a590b921534b7d Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<chapter xml:id="features.remote-files" xmlns="http://docbook.org/ns/docbook">
<title>Uso de ficheros a distancia</title>
<para>
Mientras el soporte de los gestores de URL ("URL fopen wrapper")
esté activado en el &php.ini;, con la opción <option>allow_url_fopen</option>,
se puede utilizar URL (<acronym>HTTP</acronym> y <acronym>FTP</acronym>)
con la mayoría de las funciones que utilizan un
nombre de fichero como argumento. Esto incluye especialmente
<function>include</function>,
<function>include_once</function>,
<function>require</function> y
<function>require_once</function>
(<option>allow_url_include</option> debe estar activo para utilizarlos).
Consulte <xref linkend="wrappers"/> para más información
sobre los protocolos soportados por PHP.
</para>
<para>
Por ejemplo, se puede seguir el siguiente ejemplo para abrir un
fichero en un servidor web distante, analizar los resultados
para extraer la información que se necesita, y luego
utilizarla en una consulta de base de datos, o
simplemente editar la información en el estilo del sitio.
</para>
<para>
<example>
<title>Conocer el título de una página distante</title>
<programlisting role="php">
<![CDATA[
<?php
$file = fopen ("http://www.example.com/", "r");
if (!$file) {
echo "<p>Imposible leer la página.\n";
exit;
}
while (!feof ($file)) {
$line = fgets ($file, 1024);
/* Esto solo funciona si las etiquetas Title están correctamente utilizadas */
if (preg_match ("@\<title\>(.*)\</title\>@i", $line, $out)) {
$title = $out[1];
break;
}
}
fclose($file);
?>
]]>
</programlisting>
</example>
</para>
<para>
También se puede escribir ficheros en un servidor FTP
siempre que se esté conectado con un
usuario con los derechos de acceso adecuados, aunque el
fichero no existiera aún.
</para>
<para>
Para conectarse con un usuario distinto de anónimo, se debe
especificar un nombre de usuario (y probablemente la contraseña) en
la URL, como <literal>ftp://user:password@ftp.example.com/path/to/file</literal>.
(Se puede utilizar el mismo tipo de sintaxis para acceder
a los ficheros vía <acronym>HTTP</acronym> cuando requieren una
identificación simple).
</para>
<para>
<example>
<title>Almacenar datos en un servidor distante</title>
<programlisting role="php">
<![CDATA[
<?php
$file = fopen ("ftp://ftp.example.com/incoming/outputfile", "w");
if (!$file) {
echo "<p>Imposible abrir el fichero distante para escritura.\n";
exit;
}
/* Escritura de los datos. */
fputs ($file, $_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($file);
?>
]]>
</programlisting>
</example>
</para>
<para>
<note>
<para>
Nota: se puede tener la idea, a partir del
ejemplo anterior, de utilizar la misma técnica para
escribir en un log distante, pero como se mencionó anteriormente
solo se puede escribir en un nuevo fichero utilizando
las funciones <function>fopen</function> con una URL. Para hacer logs
distribuidos, se recomienda consultar la parte
<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:
-->