Olá pessoal, nesse artigo irei abordar algumas funções para manipular arquivos através do FTP (File Transfer Protocol), como por exemplo: fazer a conexão com o servidor, enviar um arquivo, remover um arquivo ou diretório, entre outros.
Vamos começar definindo as informações necessárias para realizar a conexão com o servidor FTP. Para isso irei criar um array() com o host, usuario e senha.
PHP
<?php $dados = array( "host" => "ftp.faael.net", "usuario" => "faael", "senha" => "12345" ); ?> |
Definidos os dados para realizar a conexão, vamos abrir a conexão com o servidor e fazer o login:
PHP
<?php /* Realizamos a conexão através da função ftp_connect() que recebe como parâmetro obrigatório o host do servidor, mas também se necessário a porta FTP, que como padrão é 21. */ $fconn = ftp_connect($dados["host"]); /* Utilizamos a função ftp_login() para realizar o login no servidor, que recebe como parâmetro a conexão, usuário e senha. */ ftp_login($fconn, $dados["usuario"], $dados["senha"]); ?> |
Conectados no servidor FTP, podemos começar a manipulação de arquivos. Vamos começar enviando um arquivo local para o servidor FTP:
PHP
<?php /* Utilizamos a função 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 parâmetro: a conexão, para onde o arquivo será copiado no servidor, o arquivo local que será copiado, modo de transferência. */ 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 função:
PHP
<?php /* Desta vez, utilizamos a função 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 parâmetro: a conexão, para onde o arquivo será copiado localmente, que arquivo será copiado do servidor, modo de transferência. */ ftp_get($fconn, "/texto.txt", "/public_html/texto.txt", FTP_BINARY); ?> |
Podemos também remover um arquivo ou um diretório:
PHP
<?php /* A função 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 função ftp_rmdir() para remover o diretório teste/ que está na raiz do servidor FTP. */ ftp_rmdir($fconn, "/teste/"); ?> |
Há ainda várias outras funções para manipulação de arquivos, como:
PHP
<?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 diretório da raiz do servidor, nesse caso, o diretório novapasta/ */ ftp_mkdir($fconn, "/novapasta"); /* Exibe todos os arquivos e pastas de um determinado diretório, com vários detalhes. Os valores são colocados em um array(), por isso utilizamos o laço 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 operações necessárias, precisamos fechar a conexão com o servidor FTP:
PHP
<?php ftp_close($fconn); ?> |
Podemos, através do PHP, realizar várias funcionalidades que um programa FTP, como o Filezilla, por exemplo, realiza. Você pode ver todas as funções disponíveis no manual do PHP. Bom pessoal, é isso. Espero que esse artigo tenha lhe ajudado, abraços.
Fonte: http://rafaelcouto.com.br