Ordenar Diretorios Por Data De Criação
#1
Posted 13/07/2005, 11:35
WebSite: www.guiamedianeira.com.br
Profissão: WebDesigner / Programador
MSN:luciano@guiamedianeira.com.br
#2
Posted 13/07/2005, 11:45
Use glob() com o parâmetro GLOB_ONLYDIR para pegar os diretórios existentes no diretório atual e jogá-los num array.
Feito isso, dê um foreach() neste array, e crie um novo array bidimensional, sendo o índice a data de modificação do mesmo, obtida pela função filectime(); e o conteúdo o caminho do mesmo.
Como a função filectime() retorna a data/hora no formato UNIX timestamp, tu vai ter que usar a função date() com o formato Y/m/d H:i:s com este valor como parâmetro, retornando assim a data formatada do mesmo.
Neste novo array bidimensional gerado, dê um krsort() nele, para ordenar em ordem decrescente !
Editado: Opa ... desculpa um errinho aí. Eu havia colocado a função rsort() para ordenar o array bidimensional. Porém, isto faria com que os índices fossem alterados para ordem numérica. Já corrigi, mudando para a função krsort(), e mudei também o formato da data/hora, que necessita ser no formato americano !
[]’s Até mais
#3
Posted 19/07/2005, 09:17
Cara, não consegui fazer... dá um erro estranho...Muito simples !
Use glob() com o parâmetro GLOB_ONLYDIR para pegar os diretórios existentes no diretório atual e jogá-los num array.
Feito isso, dê um foreach() neste array, e crie um novo array bidimensional, sendo o índice a data de modificação do mesmo, obtida pela função filectime(); e o conteúdo o caminho do mesmo.
Como a função filectime() retorna a data/hora no formato UNIX timestamp, tu vai ter que usar a função date() com o formato Y/m/d H:i:s com este valor como parâmetro, retornando assim a data formatada do mesmo.
Neste novo array bidimensional gerado, dê um krsort() nele, para ordenar em ordem decrescente !
Editado: Opa ... desculpa um errinho aí. Eu havia colocado a função rsort() para ordenar o array bidimensional. Porém, isto faria com que os índices fossem alterados para ordem numérica. Já corrigi, mudando para a função krsort(), e mudei também o formato da data/hora, que necessita ser no formato americano !
[]’s
Poderia me ajudar ou fazer um exemplo pra mim ver?
Se não for pedir muito
Warning: filemtime(): Stat failed for Fiesta (errno=2 - No such file or directory) in /paginas/www.meusite.com.br/html/lista_carros_glob.php on line 15 Fiesta foi modificado em 31/12/1969 21:00:00. ...
Além do mais olha a data que diz que foi modificado, nada a ver...
WebSite: www.guiamedianeira.com.br
Profissão: WebDesigner / Programador
MSN:luciano@guiamedianeira.com.br
#4
Posted 19/07/2005, 09:44
ao usar a funçao, coloque nela o endereço completo para o arquivo... deve ser isso que tá dando problema
๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑
#5
Posted 19/07/2005, 09:55
No dia que lhe passei estes passos eu havia feito um para testar ... porém, irei formatar meu PC daqui à pouco e só vou poder postar à tarde ou até mesmo só amanhã de madrugada ...
----------
Editado em 19/Jul/05 @ 14:13
Tu deu sorte ...
[]’s Até mais<?
$aDirectories=glob("./*",GLOB_ONLYDIR);
foreach($aDirectories as $sDirectory)
{
$sModified=date("Y/m/d H:i:s",filectime($sDirectory));
$aContent[$sModified]=$sDirectory;
}
krsort($aContent,SORT_STRING);
foreach($aContent as $sModified=>$sDirectory)
{
echo "<strong>Data de Modificação:</strong> {$sModified} - <strong>Diretório:</strong> {$sDirectory}<br />";
}
?>
#6
Posted 19/07/2005, 16:46
E ai, valeu mesmo...Se tu puder esperar (rs) ...
No dia que lhe passei estes passos eu havia feito um para testar ... porém, irei formatar meu PC daqui à pouco e só vou poder postar à tarde ou até mesmo só amanhã de madrugada ...
----------
Editado em 19/Jul/05 @ 14:13
Tu deu sorte ...[]’s<?
$aDirectories=glob("./*",GLOB_ONLYDIR);
foreach($aDirectories as $sDirectory)
{
$sModified=date("Y/m/d H:i:s",filectime($sDirectory));
$aContent[$sModified]=$sDirectory;
}
krsort($aContent,SORT_STRING);
foreach($aContent as $sModified=>$sDirectory)
{
echo "<strong>Data de Modificação:</strong> {$sModified} - <strong>Diretório:</strong> {$sDirectory}<br />";
}
?>
Era só isso que tava faltando pra galeria de fotos...
Quem quizer conferir é so acessar:
www.videosomautocenter.com.br
WebSite: www.guiamedianeira.com.br
Profissão: WebDesigner / Programador
MSN:luciano@guiamedianeira.com.br
#7
Posted 16/02/2007, 15:09
#8
Posted 16/02/2007, 18:39
Falopa!
#9
Posted 17/02/2007, 00:38
Mas assim respondendo a sua pergunta "bryntec" é so trocar "foreach" por "for"
<?php $aDirectories = glob("./*",GLOB_ONLYDIR); $aContent = array(); // Previne se o diretorio tiver menos que 10 ou mais que 10.... for ($i = 0; ($i < count($aDirectories) || $i <= 10); $i++) { $sModified=date("Y/m/d H:i:s",filectime($sDirectory)); $aContent[$sModified]=$sDirectory; } krsort($aContent,SORT_STRING); foreach($aContent as $sModified => $sDirectory) { echo "<strong>Data de Modificação:</strong> {$sModified} - <strong>Diretório:</strong> {$sDirectory}<br />"; } ?>
#11
Posted 17/02/2007, 15:25
Valeu sk15, mas não funcionou.
Bem eu esqueci de um "$i" .... só isso, eu testei aqui ta funcionado, mas tem uma observação ele so lista "pastas" e não outros arquivo ....
<?php $aDirectories = glob("./*", GLOB_ONLYDIR); $aContent = array(); // Previne se o diretorio tiver menos que 10 ou mais que 10.... for ($i = 0; ($i < count($aDirectories) && $i <= 10); $i++) { $sModified = date("Y/m/d H:i:s", filectime($aDirectories[$i])); $aContent[$sModified] = $aDirectories[$i]; } krsort($aContent, SORT_STRING); foreach($aContent as $sModified => $sDirectory) { echo "<strong>Data de Modificação:</strong> {$sModified} - <strong>Diretório:</strong> {$sDirectory}<br />"; } ?>
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)