1
0
mirror of https://github.com/php/doc-es.git synced 2026-04-25 16:18:09 +02:00
Files
archived-doc-es/features/remote-files.xml
T
Pedro Antonio Gil Rodríguez be2217ef2f Correcciones menores
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@337926 c90b9560-bf6c-de11-be94-00142212c4b1
2015-09-28 11:21:55 +00:00

118 lines
3.9 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 2bb07c8c43f028c665a33bfc08a22639e9e35dc6 Maintainer: seros Status: ready -->
<!-- Reviewed: yes Maintainer: seros -->
<chapter xml:id="features.remote-files" xmlns="http://docbook.org/ns/docbook">
<title>Empleo de ficheros remotos</title>
<para>
Siempre que <option>allow_url_fopen</option> esté habilitado en
&php.ini;, se pueden usar los URL de <acronym>HTTP</acronym> y <acronym>FTP</acronym>
con la mayoría de las funciones
que toman un nombre de fichero como parámetro. Además, los URL se pueden
emplear con las sentencias <function>include</function>,
<function>include_once</function>, <function>require</function> y
<function>require_once</function> (desde PHP 5.2.0,
<option>allow_url_include</option> debe estar habilitado para ello).
Véanse <xref linkend="wrappers"/> para más información sobre los protocolos
admitidos por PHP.
</para>
<para>
Por ejemplo, se puede emplear para abrir un fichero en un servidor web remoto,
analizar la salida de los datos deseados, y usar dichos datos en una
consulta a una base de datos, o simplemente para mostrarlos en un estilo que
haga juego con el del sitio web.
</para>
<para>
<example>
<title>Obtener el título de una página remota</title>
<programlisting role="php">
<![CDATA[
<?php
$fichero = fopen ("http://www.example.com/", "r");
if (!$fichero) {
echo "<p>Imposible abrir el fichero remoto.\n";
exit;
}
while (!feof ($fichero)) {
$línea = fgets ($fichero, 1024);
/* Esto solo funciona si el título y sus etiquetas están en una línea */
if (preg_match ("@\<title\>(.*)\</title\>@i", $línea, $salida)) {
$título = $salida[1];
break;
}
}
fclose($fichero);
?>
]]>
</programlisting>
</example>
</para>
<para>
También se puede escribir en ficheros de un servidor FTP (siempre que se
esté conectado como un usuario con los permisos de acceso correctos). Con este
método solamente se pueden crear ficheros nuevos. Si se intenta sobreescribir
un fichero que ya existe, la llamada a la función <function>fopen</function>
fallará.
</para>
<para>
Para conectarse como un usuario distinto a 'anonymous', es necesario especificar
el nombre de usuario (y posiblemente la contraseña) dentro del URL, tal como
'<literal>ftp://usuario:contraseña@ftp.example.com/ruta/al/fichero</literal>'.
(Se puede utilizar la misma sintaxis para acceder a ficheros mediante
<acronym>HTTP</acronym> cuando se requiera autenticación básica).
</para>
<para>
<example>
<title>Almacenar datos en un servidor remoto</title>
<programlisting role="php">
<![CDATA[
<?php
$fichero = fopen ("ftp://ftp.example.com/incoming/outputfile", "w");
if (!$fichero) {
echo "<p>Imposible abrir el fichero remoto para escritura.\n";
exit;
}
/* Escribir los datos aqui. */
fwrite ($fichero, $_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($fichero);
?>
]]>
</programlisting>
</example>
</para>
<para>
<note>
<para>
Con el ejemplo anterior, se podría tener la idea de que se puede emplear
esta técnica para escribir un fichero de registro remoto. Desafortunadamente
esto no funcionaría porque la llamada a la función <function>fopen</function>
fallará si el fichero remoto ya existe. Para realizar registros distribuidos
como ese, debería echar un vistazo a <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
-->