FTP remoto de servidor para servidor com PHP
Neste artigo apresento os testes que fiz usando os recursos de FTP do PHP, avaliei e debuguei uma classe que encontrei no PHPClasses.org. Esta facilidade demonstra a riqueza de recursos que o PHP nos oferece.
Parte 2: Fazendo funcionar
No exemplo abaixo, utilizo métodos da classe que dei uma mexida (tinha
alguns bugs), mas não testei todos os métodos, apenas os que utilizei.
O script contém o login para a conexão, definição dos diretórios, criação da lista de arquivos de um diretório e faz a transferência. Mostra na tela a lista do antes e depois.
O script contém o login para a conexão, definição dos diretórios, criação da lista de arquivos de um diretório e faz a transferência. Mostra na tela a lista do antes e depois.
$FTP_HOST ="ftp.br.geocities.com";
$FTP_USER ="bobfrank";
$FTP_PW ="minhasenha";
$FTP_ROOT_DIR="/";
$LOCAL_SERVER_DIR = "imagens/";
$REMOTE_SERVER_DIR = "mynewdir/";
$handle=opendir($LOCAL_SERVER_DIR);
while (($file = readdir($handle))!==false)
{
if(!is_dir($file)){
$f[]="$file";
}
}
closedir($handle);
sort($f);
$count=0;
$ftp=new php_ftp_class($FTP_USER,$FTP_PW,$FTP_HOST,$FTP_ROOT_DIR);
print $FTP_HOST."<br>";
$ftp->dir_list();
@$ftp->mk_dir($REMOTE_SERVER_DIR);
$ftp->cd($REMOTE_SERVER_DIR);
foreach($f as $files) {
if($ftp->srv2srv($LOCAL_SERVER_DIR.$files, $files)){
$count +=1;
}
}
print ($count)." transfered files";
$ftp->dir_list();
$ftp->close();
$FTP_USER ="bobfrank";
$FTP_PW ="minhasenha";
$FTP_ROOT_DIR="/";
$LOCAL_SERVER_DIR = "imagens/";
$REMOTE_SERVER_DIR = "mynewdir/";
$handle=opendir($LOCAL_SERVER_DIR);
while (($file = readdir($handle))!==false)
{
if(!is_dir($file)){
$f[]="$file";
}
}
closedir($handle);
sort($f);
$count=0;
$ftp=new php_ftp_class($FTP_USER,$FTP_PW,$FTP_HOST,$FTP_ROOT_DIR);
print $FTP_HOST."<br>";
$ftp->dir_list();
@$ftp->mk_dir($REMOTE_SERVER_DIR);
$ftp->cd($REMOTE_SERVER_DIR);
foreach($f as $files) {
if($ftp->srv2srv($LOCAL_SERVER_DIR.$files, $files)){
$count +=1;
}
}
print ($count)." transfered files";
$ftp->dir_list();
$ftp->close();
Para você testar poderia usar os comandos de ftp diretamente do PHP, mas a classe php_ftp_class ajuda bastante.
Um abraço à todos.
Esse livro PHP Programming é um ícone, foi ele que me introduziu nesta belíssima linguagem também, muito bom.