ordine per data

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
Buongirono, questo codice mi carica dinamicamente dei pdf e li ordina in modo alfabetico invece che per data.
Qual'è il punto da correggere?

PHP:
<?php
$file=glob("pdf_decreti/*.pdf");
    foreach($file as $nome){
    	 echo "".date("d.m.Y", filemtime($nome))."<br><br/>";
}?> 
		<?php	function dir_list($directory = FALSE)
												{
	$dirs= array();
  $files = array();
if ($handle = opendir("./" . $directory))
{
while ($file = readdir($handle))
{
if (is_dir("./{$directory}/{$file}"))
{
if ($file != "." & $file != "..") $dirs[] = $file; }
else
{
if ($file != "." & $file != "..") $files[] = $file; }
}
}
closedir($handle);
reset($dirs); sort($dirs); reset($dirs);
reset($files); sort($files); reset($files);
echo ""; while(list($key, $value) = each($dirs))
{
$d++; echo "<li><a href=\"{$value}\">{$value}/</a>\n"; }
echo "</ul>\n"; echo ""; while(list($key, $value) = each($files))
{
$f++; echo "<li id='lista_pdf'><ahref=\"/consorzio-bus-car {$directory}{$value}\">{$value}</a><br/><br/>"; }
echo "</ul>\n";
if (!$d) $d = "0"; if (!$f) $f = "0"; echo "<br/><br/>Sono presenti <strong>{$f}</strong> pdf.</strong>\n"; }
dir_list("/pdf_decreti/"); 


?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova a fare questi passaggi
PHP:
<?php
$file_orig=glob("pdf_decreti/*.pdf");//leggi i file (ho cambiato il nome dell'array)
$ordine_data=array();//array di appoggio
$file=array();//per non stare a cambiare il nome nel resto dello script
foreach($file_orig as $nome){
	$data_ts=filemtime($nome); //estrai la data in timestamp
	echo "".date("d.m.Y", filemtime($nome))."<br><br/>";
	//inserisci i nomi dei file nell' array  di appoggio con chiave = data in tmestamp
	$ordine_data[$data_ts]=$nome;
}
//ordini per chiave della'array (la data)
ksort($ordine_data);//krsort() per ordinare all'inverso
//ti riporti a $file
foreach($ordine_data as $data => $nome){
	$file[]=$nome;
}
//eccetera....
?>
se qualcuno trova qualcosa di meglio lo posti
 

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
grazie borgo, ho cambiato il codice in questo modo ma va cmq per ordine alfabetico.. Ho sbagliato a inserire il codice?

PHP:
 <?php
$file_orig=glob("pdf_decreti/*.pdf");//leggi i file (ho cambiato il nome dell'array)
$ordine_data=array();//array di appoggio
$file=array();//per non stare a cambiare il nome nel resto dello script
foreach($file_orig as $nome){
    $data_ts=filemtime($nome); //estrai la data in timestamp
    echo "".date("d.m.Y", filemtime($nome))."<br><br/>";
    //inserisci i nomi dei file nell' array  di appoggio con chiave = data in tmestamp
    $ordine_data[$data_ts]=$nome;
}
//ordini per chiave della'array (la data)
ksort($ordine_data);//krsort() per ordinare all'inverso
//ti riporti a $file
foreach($ordine_data as $data => $nome){
    $file[]=$nome;
}

?>
        <?php    function dir_list($directory = FALSE)
                                                {
    $dirs= array();
  $files = array();
if ($handle = opendir("./" . $directory))
{
while ($file = readdir($handle))
{
if (is_dir("./{$directory}/{$file}"))
{
if ($file != "." & $file != "..") $dirs[] = $file; }
else
{
if ($file != "." & $file != "..") $files[] = $file; }
}
}
closedir($handle);
reset($dirs); sort($dirs); reset($dirs);
reset($files); sort($files); reset($files);
echo ""; while(list($key, $value) = each($dirs))
{
$d++; echo "<li><a href=\"{$value}\">{$value}/</a>\n"; }
echo "</ul>\n"; echo ""; while(list($key, $value) = each($files))
{
$f++; echo "<li id='lista_pdf'><ahref=\"/consorzio-bus-car {$directory}{$value}\">{$value}</a><br/><br/>"; }
echo "</ul>\n";
if (!$d) $d = "0"; if (!$f) $f = "0"; echo "<br/><br/>Sono presenti <strong>{$f}</strong> pdf.</strong>\n"; }
dir_list("/pdf_decreti/"); 


?>
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Prova così (non vedo perché leggi due volte la cartella):
PHP:
<?php
$files = glob('pdf_decreti/*.pdf');

usort($files, function ($a, $b) {
    $aMtime = filemtime($a);
    $bMtime = filemtime($b);
    
    if ($aMtime == $bMtime) {
        return 0;
    }
    
    return ($aMtime > $bMtime) ? 1 : -1;
});

var_dump($files);
?>
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Oppure anche cosi

PHP:
<?
$files = glob('pdf_decreti/*.pdf');
$date_files = array(); //array date

foreach($files as $file) $date_files[$file] = filemtime($file); //assegnazione numerica

sort($date_files); //ordinamento dell'array secondo l'assegnazione numerica in ordine crescente

//stampiamo i files

foreach($date_files as $file => $data) echo "file: ".$file." data: ".$data."<br>";

?>

Premetto di non averla testata, mi sono basato su base teorica perciò fammi sapere
 
Ultima modifica:

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
Non funziona ancora con entrambi. Il tuo ale nonostante gli errori del compilatore alla riga 4 e 13 mi stampa la lunghezza della stringa mentre il tuo nefyt valori di questo tipo
file: 0 data: 1338199780
file: 1 data: 1338202724
file: 2 data: 1338979105
file: 3 data: 1339407272
 

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
cmq il tuo codice ale mi stampa questo
0 => string 'pdf_decreti/recupero.pdf' (length=24)
1 => string 'pdf_decreti/20-4-2012.pdf' (length=25)
2 => string 'pdf_decreti/sqlinjections.pdf' (length=29)
3 => string 'pdf_decreti/dai.pdf' (length=19)
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Mmmm prova cosi e fammi sapere
PHP:
<?
$files = scandir('pdf_decreti/*.pdf');
$date_files = array(); //array date

foreach($files as $file) $date_files[$file] = filemtime($file); //assegnazione numerica

sort($date_files); //ordinamento dell'array secondo l'assegnazione numerica in ordine crescente

//stampiamo i files

foreach($date_files as $file => $data){ 
         $d = date_create();
         date_timestamp_set($d,$data);
         echo "file: ".$file." data: ".date_format($d,'Y-m-d')."<br>"; 
}

?>
 

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
così non vedo addirittura niente... scusate ragazzi vi sto facendo diventar matti XD
 
Discussioni simili
Autore Titolo Forum Risposte Data
Tommy03 Select in ordine per numero di record MySQL 7
J modifica spooler di stampa per stampare in ordine di nome i files pdf Windows e Software 2
felino [Wordpress] Ordine per Calendario Personalizzato WordPress 1
A Aiuto per ordine cronologico lista file all'interno di una cartella protetta PHP 2
S ORDINE WEBMASTER - Nuovo portale per i professionisti del web Presenta il tuo Sito 7
M modulo asp per ordine non funziona Classic ASP 6
I Inviare due email per ordine PHP 5
F query per ordine alfabetico ma... PHP 1
S Selezione da ordine alfabetico per tipo Classic ASP 15
G Sviluppo tabella orizzontale in un certo ordine PHP 2
C Sparite le Varianti dalla email di Riepilogo Ordine (WooCommerce) E-Commerce 1
F Script non funzionante. Devo elencare in ordine alfabetico un elenco di nominativi, ma lo script non Javascript 2
M Matrice di caratteri ( inseriti da tastiera ) ordinati in ordine alfabetico C/C++ 3
felino [WordPress] [WooCommerce] Ordine: aggiungere nuovi stati con notifica email al cliente WordPress 4
G [HTML] Modificare ordine dei div in mobile responsive HTML e CSS 5
F [HTML] Modulo d'ordine che arriva tramite email editabile ed inviabile. HTML e CSS 6
S Inserire ordine minimo E-Commerce 3
R PROBLEMA INVIO EMAIL AL CAMBIO DI STATO ORDINE E-Commerce 1
webmachine [PRESTASHOP] Cambiare ordine prezzo-sconto-prezzoscontato E-Commerce 1
ANDREA20 [PHP] Numero ordine PHP 15
ANDREA20 [MySQL] [PHP] Invio email ordine MySQL 12
A [WordPress] Plugin gestione ordine prodotto. WordPress 0
ANDREA20 [PHP] Invio ordine via email PHP 14
webmachine [PRESTASHOP] Ordine Prodotti personalizzato E-Commerce 1
gandalf1959 Scansione di file in una directory: non sono in ordine crescente. Come mai? PHP 8
C verifica e invio ordine php PHP 19
L Ordinare articoli dentro categorie e tag in ordine alfabetico wordpress WordPress 1
Shyson Stampare lista in ordine decrescente Database 1
M elementi di una gridview appaiono in ordine casuale invece di quello deciso da me Sviluppo app per Android 2
K Stampa ordine Javascript 6
blips Ordine di esecuzione query PHP 3
StarFish [c++] matrice con ordine crescente C/C++ 0
Trapano [risolto] Leggere da un file txt in ordine inverso PHP 2
felino [Virtuemart] Modifica del template dell'ordine inviato dopo l'acquisto Joomla 0
P PHP modulo ricerca e ordine alfabetico PHP 5
S Ordine array bidimensionale PHP 2
ivarello Ordinare dati Var in ordine numerico PHP 9
valient13 ordinare in ordine decrescente la lista PHP 2
P ordine alfabetico A Z Classic ASP 13
M problema "Ordine del carico jquery librerie deve essere cambiato" jQuery 0
Sargon ordine delle parole PHP, My sql PHP 5
M campo ordine da modificare con form PHP 2
N visualizzare foto in ordine di upload PHP 8
B ordine cronologico articoli PHP 2
LaKanka Problema query ordine di visualizzazione PHP 17
RedWolf Paginazione, ordine alfabetico e array PHP 4
K Formato misto e ordine record Database 1
A come abilitare in ordine un imput di tipo file??? Javascript 3
B collegare un utente ad un ordine PHP 0
L Form Ordine (Selettore Quantità) Javascript 11

Discussioni simili