Jump to content


Photo

Ordenar Diretorios Por Data De Criação


  • Faça o login para participar
10 replies to this topic

#1 <?PHPMAN?>

<?PHPMAN?>

    Ativo

  • Usuários
  • 300 posts
  • Sexo:Não informado

Posted 13/07/2005, 11:35

Alguem sabe como faz para listar os diretorios por ordem da data de criação do mesmo, mostrando o ultimo criado no topo da lista?
Nome: Luciano André Bruch
WebSite: www.guiamedianeira.com.br
Profissão: WebDesigner / Programador
MSN:luciano@guiamedianeira.com.br

#2 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 13/07/2005, 11:45

Muito simples ! :D

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 :DAté mais

#3 <?PHPMAN?>

<?PHPMAN?>

    Ativo

  • Usuários
  • 300 posts
  • Sexo:Não informado

Posted 19/07/2005, 09:17

Muito simples ! :D

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 :D

Cara, não consegui fazer... dá um erro estranho...
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...
Nome: Luciano André Bruch
WebSite: www.guiamedianeira.com.br
Profissão: WebDesigner / Programador
MSN:luciano@guiamedianeira.com.br

#4 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 19/07/2005, 09:44

ele deu essa data porque quando ele nao acha o arquivo, essa é a "primeira data" computacional dos ambientes *nix

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 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 19/07/2005, 09:55

Se tu puder esperar (rs) ... :P

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 ... :unsure:

----------
Editado em 19/Jul/05 @ 14:13

Tu deu sorte ... :P

<?

$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 />";
}

?>

[]’s :DAté mais

#6 <?PHPMAN?>

<?PHPMAN?>

    Ativo

  • Usuários
  • 300 posts
  • Sexo:Não informado

Posted 19/07/2005, 16:46

Se tu puder esperar (rs) ... :P

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 ... :unsure:

----------
Editado em 19/Jul/05 @ 14:13

Tu deu sorte ... :P

<?

$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 />";
}

?>

[]’s :D

E ai, valeu mesmo...
Era só isso que tava faltando pra galeria de fotos...

Quem quizer conferir é so acessar:
www.videosomautocenter.com.br
Nome: Luciano André Bruch
WebSite: www.guiamedianeira.com.br
Profissão: WebDesigner / Programador
MSN:luciano@guiamedianeira.com.br

#7 bryntec

bryntec

    Turista

  • Usuários
  • 46 posts
  • Sexo:Masculino
  • Localidade:Brasil

Posted 16/02/2007, 15:09

E se eu quiser listar apenas, por exemplo, 10 pastas ou arquivos, como faço ?!
bryntec.com | Design e Programação Web

#8 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 16/02/2007, 18:39

dentro do loop você usa uma variavel e vai incrementando o valor dela até 10 enquanto for menor que dez vai imprimindo.

Falopa!

#9 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 17/02/2007, 00:38

Pessoal por favor não reviva tópicos antigos para resolver algo, confudem todos!
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 />";
}

?>


#10 bryntec

bryntec

    Turista

  • Usuários
  • 46 posts
  • Sexo:Masculino
  • Localidade:Brasil

Posted 17/02/2007, 11:38

Valeu sk15, mas não funcionou.
bryntec.com | Design e Programação Web

#11 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

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)

IPB Skin By Virteq