Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

wtrafael

abrindo e movendo aquivos

Recommended Posts

Opa, tava precisando de uma ajuda, não sei como faço isso, ainda estou aprendendo..

mas ja quebrei mto a cabeça e resolvi pedir uma ajudinha.

 

tenho no meu ftp.. varios arquivos numa pasta.. e ele tem esse formato (The Forge-Tritanium-2009.08.06 195513.txt)

onde é (lugar-item-data hora.txt) quero q o PHP pegue todos os arquivos antigos e mudasse todos para outra pasta..

só deixando o mais recente..

 

pq na pasta vai ter varios arquivos.. + de 3000 facil..

e fazer isso na mão não dá..

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, com a função mktime() você descobre qual o arquivo mais recente e com a função copy() você copia eles para onde você quiser. Feito isso, você usa a função unlink() nos arquivos que foram copiados pro novo diretório, ou seja, você deleta com a função unlink todos os arquivos, menos o mais recente.

 

Qualquer coisa dá um toque.

 

Abraço, SetaMB

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, com a função mktime() você descobre qual o arquivo mais recente e com a função copy() você copia eles para onde você quiser. Feito isso, você usa a função unlink() nos arquivos que foram copiados pro novo diretório, ou seja, você deleta com a função unlink todos os arquivos, menos o mais recente.

 

Qualquer coisa dá um toque.

 

Abraço, SetaMB

 

tem como você me mandar um exemplo estou com dificuldade para entender como isso pode ser feito.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem como você me mandar um exemplo estou com dificuldade para entender como isso pode ser feito.

 

Obrigado.

 

Seguinte, abaixo segue um exemplo básico de mais ou menos o que eu falei. Não é a melhor forma de fazer isso, mas deve servir justamente de exemplo. Depois você refina o código e adapta para o que você precisa efetivamente, mas é basicamente isso.

 

O Código está passo a passo, todo comentado explicando o que é feito. Acabei nem usando a função mktime(). Troquei pela função filemtime() que era mais fácil pra você entender o que foi feito. Aconselho você que não copie e cole ele, mas sim entenda o que foi feito e reduza o número de repetições, que é possível!!

 

Eu não testei, por isso pode ter alguns errinhos básicos. Se você tiver começando em PHP, deixa os comentários pra você poder se guiar depois.

 

Qualquer coisa dá um toque.

 

Abraços, Seta.

 

<?php
/**
 *
 *   move_arquivos.php
 *
 *   Copia todos os arquivos cuja data de modificação é dirente de hoje.
 *
*/

// Declaro o diretório do FTP onde estão os arquivos txt
// normalmente é algo como "/home/httpd/vhosts/dominio.com.br/httpdocs/diretorio onde estao os arquivos"
$dir    = "arquivos_txt";

// Abro o diretório
$opdir  = opendir($dir);

// Gravo tudo que foi encontrado em $itens[]
while ($nome_itens = readdir($opdir))
{
   $itens[] = $nome_itens;
}

// Separo arquivos e pastas
foreach ($itens as $listar)
{
   // "." e ".." representam os diretórios anteriores, por isso ignoro eles
   if ($listar!="." && $listar!="..")
   {
      if (is_dir($listar))
      {
         // Se for pasta, gravo em $pastas
         $pastas[]=$listar;
      }
      else
      {
         // Vejo se é arquivo e se é TXT e guarod em $arquivos
         if(substr($listar,-4)==".txt") $arquivos[]=$listar;
      }
   }
}

// Listo todos os arquivos
for($x=0; $x<count($arquivos); $x++)
{
   // Pego a data de alteração do arquivo.
   $data_arquivo = date("d/m/Y", filemtime($arquiuvos[$x]));
   
   // Se a data de modificação do arquivo for diferente de hoje, copio pro novo diretório
   if($data_arquivo != date("d/m/Y"))
   {
      copy($arquivos[$x], "diretório de destino para arquivos velhos");
      unlink($arquivos[$x]);
   }
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.