wtrafael 0 Denunciar post Postado Agosto 10, 2009 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
SetaMB 1 Denunciar post Postado Agosto 10, 2009 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
wtrafael 0 Denunciar post Postado Agosto 11, 2009 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
SetaMB 1 Denunciar post Postado Agosto 11, 2009 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