Sei sulla pagina 1di 2

Manipulando arquivos atravs do FTP com PHP

Escrito por Rafael em 2 julho, 2009 6.522 visualizaes

Ol pessoal, nesse artigo irei abordar algumas funes para manipular arquivos atravs do FTP (File Transfer Protocol), como por exemplo: fazer a conexo com o servidor, enviar um arquivo, remover um arquivo ou diretrio, entre outros. Vamos comear definindo as informaes necessrias para realizar a conexo com o servidor FTP. Para isso irei criar um array() com o host, usuario e senha.
<?php $dados = array( "host" => "ftp.faael.net", "usuario" => "faael", "senha" => "12345" ); ?>

Definidos os dados para realizar a conexo, vamos abrir a conexo com o servidor e fazer o login:
<?php /* Realizamos a conexo atravs da funo ftp_connect() que recebe como parmetro obrigatrio o host do servidor, mas tambm se necessrio a porta FTP, que como padro 21. */ $fconn = ftp_connect($dados["host"]); /* Utilizamos a funo ftp_login() para realizar o login no servidor, que recebe como parmetro a conexo, usurio e senha. */ ftp_login($fconn, $dados["usuario"], $dados["senha"]); ?>

Conectados no servidor FTP, podemos comear a manipulao de arquivos. Vamos comear enviando um arquivo local para o servidor FTP:
<?php /* Utilizamos a funo ftp_put() para enviar o arquivo texto.txt, que est na raiz do servidor local, para a pasta public_html/ que est na raiz do servidor FTP. Passamos como parmetro: a conexo, para onde o arquivo ser copiado no servidor, o arquivo local que ser copiado, modo de transferncia. */ ftp_put($fconn, "/public_html/texto.txt", "/texto.txt", FTP_BINARY); ?>

Para realizar o processo inverso, ou seja, copiar um arquivo do servidor FTP para o servidor local, utilizamos a seguinte funo:
<?php /* Desta vez, utilizamos a funo ftp_get() que ir copiar o arquivo texto.txt, que est na pasta public_html/ na raiz do servidor, para a pasta raiz do servidor local com o nome texto.txt; Passamos como parmetro: a conexo, para onde o arquivo ser copiado localmente, que arquivo ser copiado do servidor, modo de transferncia. */ ftp_get($fconn, "/texto.txt", "/public_html/texto.txt", FTP_BINARY); ?>

Podemos tambm remover um arquivo ou um diretrio:


<?php /* A funo ftp_delete() remove um arquivo do servidor FTP, no caso iremos remover o texto.txt da pasta public_html/

do servidor. */ ftp_delete($fconn, "/public_html/texto.txt"); /* Utilizamos a funo ftp_rmdir() para remover o diretrio teste/ que est na raiz do servidor FTP. */ ftp_rmdir($fconn, "/teste/"); ?>

H ainda vrias outras funes para manipulao de arquivos, como:


<?php /* Renomeia um arquivo do servidor FTP, no caso, o arquivo texto.txt passa a chamar novotexto.txt */ ftp_rename($fconn, "/texto.txt", "/novotexto.txt"); /* Retorna o tamanho (em bytes) de um determinado arquivo, no caso, do arquivo texto.txt */ ftp_size($fconn, "/texto.txt"); /* Cria um novo diretrio da raiz do servidor, nesse caso, o diretrio novapasta/ */ ftp_mkdir($fconn, "/novapasta"); /* Exibe todos os arquivos e pastas de um determinado diretrio, com vrios detalhes. Os valores so colocados em um array(), por isso utilizamos o lao foreach() para exibir os itens da raiz do servidor FTP. */ $lista = ftp_rawlist($fconn, "/"); foreach ($lista as $item) { echo $item . "<br />"; } ?>

Depois de realizarmos todas as operaes necessrias, precisamos fechar a conexo com o servidor FTP:
<?php ftp_close($fconn); ?>

Podemos, atravs do PHP, realizar vrias funcionalidades que um programa FTP, como o Filezilla, por exemplo, realiza. Voc pode ver todas as funes disponveis no manual do PHP. Bom pessoal, isso. Espero que esse artigo tenha lhe ajudado, abraos.