Ler um arquivo trazido por FTP com PHP

Um script PHP para ler um arquivo por FTP, que se encontra em um servidor remoto e que se traz mediante uma conexão FTP.

Por Miguel Angel Alvarez - Tradução de JML


Publicado em: 09/6/09

Valorize este artigo:
A gestão de arquivos por PHP inclui a conexão por FTP ou HTTP para abrir um arquivo. Isto significa que se pode indicar uma URL, ao invés da rota do arquivo no sistema de arquivos do servidor local. Com isso poderemos abrir um arquivo remoto, que se encontra em outro servidor.

Para abrir um arquivo devemos utilizar a função do sistema de arquivos (Filesystem function) fopen. Neste caso, vamos realizar um uso especial para conectar com esse arquivo por FTP.

Antes de tudo, há que dizer que para que isto funcione, ou seja, para poder conectar por FTP ou por HTTP com um arquivo remoto, temos que ter habilitada a diretiva allow_url_fopen no PHP.ini (allow_url_fopen = on).

A diferença fundamental na hora de conectar um arquivo que se encontra em um servidor remoto está na linha do fopen:

$arquivo = fopen ("ftp://usuario:senha@ftp.servidor.com/html/arquivo.txt", "r");

Simplesmente indicamos a rota do arquivo com uma URL pelo protocolo FTP. Em tal URL se indicam os seguintes dados.
  • ftp:// é o protocolo.
  • usuario: senha é o usuário e a senha de acesso FTP que estivermos utilizando. Se fosse um ftp anônimo poderíamos omitir estes dados.
  • @ para separar o que é o usuário e a senha do nome do servidor. Também se deveria omitir no caso de um servidor anônimo.
  • ftp.servidor.com é o nome do servidor FTP ao que estamos conectando.
  • /html/arquivo.txt é a rota desde o diretório raiz do FTP para o arquivo que se deseja abrir.
Vejamos um exemplo completo de conexão por FTP para abrir, ler e mostrar um arquivo de texto remoto:

<?php
$arquivo = fopen ("ftp://user:password@ftp.server.com/html/provando.txt", "r");
if (!$arquivo) {
echo "<p>Não posso abrir o arquivo para leitura</p>";
exit;
}
$texto="";
while ($linha = fgets($arquivo,1024)) {
   if ($linha) $texto .= $linha;
}
echo $texto;
fclose ($arquivo);
?>






Usuários :    login / registro
Manuais relacionados
Categorias relacionadas
O autor

Buscar projetos:

Home | Sobre nós | Copyright | Anuncie | Entrar em contato