Atualizado em 02 de Outubro de 2013

Listar Arquivos Ordenado por Data com PHP

Olá pessoal,

Ter que listar arquivos de uma pasta para determinado fim é um recurso muito interessante. Mas como listar arquivos ordenado/classificando por data com o PHP.

No post de hoje vamos ver como listar arquivos de uma pasta ordenando pela data de modificação do mesmo. Para realizar esta ação vamos ter que realizar quatro passos. São eles:
  • Obter a listagem dos arquivos da pasta/diretório;
  • Carrega todos arquivos da listagem para um Array, juntamente com seu nome e a data de sua modificação (comando filemtime()) como índice do Array;
  • Classifica o Array pelo índice;
  • Lista os Arquivos.

Vamos ver como fica o script em PHP:

<?php
// Obter a listagem dos Arquivos do diretório
$pasta = './imagens/';

if(is_dir($pasta))
 {
  $diretorio = dir($pasta);

  while($arquivo = $diretorio->read())
  {
   if($arquivo != '..' && $arquivo != '.')
   {
    // Cria um Arrquivo com todos os Arquivos encontrados
    $arrayArquivos[date('Y/m/d H:i:s', filemtime($pasta.$arquivo))] = $pasta.$arquivo;
   }
  }
  $diretorio->close();
 }

// Classificar os arquivos para a Ordem Crescente
 ksort($arrayArquivos, SORT_STRING);

// Mostra a listagem dos Arquivos
foreach($arrayArquivos as $valorArquivos)
 {
  echo '<a href='.$pasta.$valorArquivos.'>'.$valorArquivos.'</a><br />';
 }
?>

O script já esta bem auto-explicativo, em caso de dúvida comentem!!!

Este script ordena os arquivos para que fiquem em ordem Crescente, para que eles fiquem na ordem inversa (Decrescente) altere o comando ksort por krsort.


"Esta dica te ajudou de alguma forma?" Então ajude outras pessoas compartilhando este conteúdo com seus amigos! =)


Até a próxima.

Comentários

Sua foto do perfil

Rodolfo

Muito bom, ajudou Bastante, vlw.

14 de Setembro de 2015 - 20:49

Sua foto do perfil

Ramon Gutermann

Muito bom! To usando esse script e realmente me foi muito útil.
Não querendo abusar da sua boa vontade, poderia mostrar como eu teria que fazer pra mostrar a data e hora de cada arquivo? Assim, na página, gostaria que cada arquivo listado, estivesse com a data impressa.

06 de Maio de 2015 - 14:13

Sua foto do perfil

Mauricio Programador

Olá Ramon,

Basta usar a mesma função que usamos para atribuir a data ao Array, fica assim:

$valorArquivos.' - ' .date('Y/m/d H:i:s', filemtime($pasta.$arquivo))

Testa ai e qualquer coisa me avise.

abraço.

07 de Maio de 2015 - 10:12

Sua foto do perfil

Cristian

Sensacional!!!! 1000 pontos para vc! Obrigado!

29 de Abril de 2015 - 11:20

Sua foto do perfil

Norberto

Valeu, muito útil.

18 de Março de 2015 - 13:47

Sua foto do perfil

Gustavo

Mds, eu procurei isso por toda parte, vlw msm

10 de Fevereiro de 2015 - 21:23

Sua foto do perfil

marcio lemos

Muito bom, me ajudou bastante! Parabéns, Muito Obrigado!

29 de Julho de 2014 - 17:19

NEWSLETTER

Receba dicas de programação
em seu e-mail

TWITTER

Acompanhe tudo o que rola
com Mauricio Programador

NEWSLETTER