Un script PHP para leer un archivo por FTP, que se encuentra en un servidor remoto y que se trae mediante una conexión FTP.
La gestión de archivos por PHP incluye la conexión por FTP o HTTP para abrir un archivo. Esto significa que se puede indicar una URL, en vez de la ruta del archivo en el sistema de archivos del servidor local. Con ello podremos abrir un archivo remoto, que se encuentra en otro servidor.
Para abrir un archivo debemos utilizar la función del sistema de archivos (Filesystem function) fopen. Esta función la describimos con detalle en el manual sobre gestión de archivos por PHP. En este caso vamos a realizar un uso especial para conectar con ese archivo por FTP.
Antes que nada hay que decir que para que esto funcione, es decir, para poder conectar por FTP o por HTTP con un archivo remoto, tenemos que tener habilitada la directiva allow_url_fopen en el PHP.ini (allow_url_fopen = on).
La diferencia fundamental a la hora de conectar un archivo que se encuentra en un servidor remoto está en la línea del fopen:
$archivo = fopen ("ftp://usuario:clave@ftp.servidor.com/html/archivo.txt", "r");
Simplemente indicamos la ruta del archivo con una URL por el protocolo FTP. En dicha URL se indican los siguientes datos.
Veamos un ejemplo completo de conexión por FTP para abrir, leer y mostrar un fichero de texto remoto:
<?php
$archivo = fopen ("ftp://user:password@ftp.server.com/html/probando.txt", "r");
if (!$archivo) {
echo "<p>No puedo abrir el archivo para lectura</p>";
exit;
}
$texto="";
while ($linea = fgets($archivo,1024)) {
if ($linea) $texto .= $linea;
}
echo $texto;
fclose ($archivo);
?>
Para abrir un archivo debemos utilizar la función del sistema de archivos (Filesystem function) fopen. Esta función la describimos con detalle en el manual sobre gestión de archivos por PHP. En este caso vamos a realizar un uso especial para conectar con ese archivo por FTP.
Antes que nada hay que decir que para que esto funcione, es decir, para poder conectar por FTP o por HTTP con un archivo remoto, tenemos que tener habilitada la directiva allow_url_fopen en el PHP.ini (allow_url_fopen = on).
La diferencia fundamental a la hora de conectar un archivo que se encuentra en un servidor remoto está en la línea del fopen:
$archivo = fopen ("ftp://usuario:clave@ftp.servidor.com/html/archivo.txt", "r");
Simplemente indicamos la ruta del archivo con una URL por el protocolo FTP. En dicha URL se indican los siguientes datos.
- ftp:// es el protocolo.
- usuario:clave es el usuario y la clave del acceso FTP que estemos utilizando. Si fuera un ftp anónimo podríamos omitir estos datos.
- @ para separar lo que es el usuario y la clave del nombre del servidor. También se debería omitir en el caso de un servidor anónimo.
- ftp.servidor.com es el nombre del servidor FTP al que estamos conectando
- /html/archivo.txt es la ruta desde el directorio raíz del FTP hacia el archivo que se desea abrir.
Veamos un ejemplo completo de conexión por FTP para abrir, leer y mostrar un fichero de texto remoto:
<?php
$archivo = fopen ("ftp://user:password@ftp.server.com/html/probando.txt", "r");
if (!$archivo) {
echo "<p>No puedo abrir el archivo para lectura</p>";
exit;
}
$texto="";
while ($linea = fgets($archivo,1024)) {
if ($linea) $texto .= $linea;
}
echo $texto;
fclose ($archivo);
?>
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...