Leer un archivo traído por FTP con PHP

  • Por
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.
  • 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.
Luego trataríamos el archivo de manera similar a como hemos visto en otros casos en el manual sobre gestión de archivos por PHP.

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);
?>

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir