Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2013
    Messaggi
    32

    ordina elenco file per ordine di upload

    Eccomi di nuovo qua! Ho risolto il problema della data del mio precedente thread, ma ne ho un altro:

    ho creato questa pagina di download dove mostro tutti i files della cartella uploads. in ogni riga c'è il titolo del documento e la data di inserimento. Cerco di ordinarli per data (ovviamente gli ultimi inseriti stanno in alto):

    Codice PHP:

    <?php $file glob("uploads");

    function 
    ordina($file1,$file2) {
        
    $tempo1 filectime($file1);
        
    $tempo2 filectime($file2);
        return (
    $tempo1 $tempo2) ? : -1;    }
    ?>
    questo è il file config.php che viene incluso nella mia pagina.
    Ora la pagina vera e propria:

    Codice PHP:
    <?php
                        $cartella 
    opendir('uploads');
                        while (
    $file readdir($cartella)) {
                            
    $file_array[] = $file;
                        }
                        
    usort($file,'ordina');
                        
    reset ($file);
                        foreach (
    $file_array as $file) {
                            if ( 
    $file == ".." || $file == "." || $file == ".DS_Store") {
                                continue;                        }
                                                                             echo 
    "<div class=\"download\">";
                            echo 
    "<div class=\"file-name\">";
                            echo 
    "<a href=\"uploads/$file\" target=\"_blank\">$file</a>";
                            echo 
    "</div>";                        echo "<div class=\"file-date\">";
                            if (
    file_exists('uploads/'.$file)) {
                                echo 
    date ("d/m/Y"filemtime('uploads/'.$file));
                            } else { echo 
    "N.P."; }
                            echo 
    "</div>";
                            echo 
    "<div class=\"download-img\">";
                            echo 
    "<a href=\"uploads/$file\" download=\"$file.pdf\"><img src=\"immagini/download.png\" alt=\"download\" /></a>";
                            echo 
    "</div>";
                            echo 
    "<div class=\"clear\"></div>";
                            echo 
    "</div>";
                        }
                        
    clearstatcache();
                    
    ?>
    Perchè non funziona? (A parte il fatto che io sia una pippa con il PHP ancora ) Grazie a tutti!
    Ultima modifica di simba92; 21-11-2014 a 16:13
    Paterno' Red Sox Baseball - www.redsoxpaterno.com

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    prova a fare usort su $file_array

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2013
    Messaggi
    32
    continua a non funzionare.. sembra che l'ordine sia sparso! E ogni tanto addirittura cambia!
    Paterno' Red Sox Baseball - www.redsoxpaterno.com

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Posta il risultato che hai e come vorresti che fosse.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    soluzione pronta all'uso (guarda il codice della risposta accettata)
    http://stackoverflow.com/questions/1...-date-modified

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2013
    Messaggi
    32
    Ho provato, ma invece che in ordine cronologico li mette in ordine alfabetico!
    Paterno' Red Sox Baseball - www.redsoxpaterno.com

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    posta il codice...

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2013
    Messaggi
    32
    Quote Originariamente inviata da simba92 Visualizza il messaggio
    Eccomi di nuovo qua! Ho risolto il problema della data del mio precedente thread, ma ne ho un altro:

    ho creato questa pagina di download dove mostro tutti i files della cartella uploads. in ogni riga c'è il titolo del documento e la data di inserimento. Cerco di ordinarli per data (ovviamente gli ultimi inseriti stanno in alto):

    Codice PHP:

    <?php $file glob("uploads");

    function 
    ordina($file1,$file2) {
        
    $tempo1 filectime($file1);
        
    $tempo2 filectime($file2);
        return (
    $tempo1 $tempo2) ? : -1;    }
    ?>
    questo è il file config.php che viene incluso nella mia pagina.
    Ora la pagina vera e propria:

    Codice PHP:
    <?php
                        $cartella 
    opendir('uploads');
                        while (
    $file readdir($cartella)) {
                            
    $file_array[] = $file;
                        }
                        
    usort($file,'ordina');
                        
    reset ($file);
                        foreach (
    $file_array as $file) {
                            if ( 
    $file == ".." || $file == "." || $file == ".DS_Store") {
                                continue;                        }
                                                                             echo 
    "<div class=\"download\">";
                            echo 
    "<div class=\"file-name\">";
                            echo 
    "<a href=\"uploads/$file\" target=\"_blank\">$file</a>";
                            echo 
    "</div>";                        echo "<div class=\"file-date\">";
                            if (
    file_exists('uploads/'.$file)) {
                                echo 
    date ("d/m/Y"filemtime('uploads/'.$file));
                            } else { echo 
    "N.P."; }
                            echo 
    "</div>";
                            echo 
    "<div class=\"download-img\">";
                            echo 
    "<a href=\"uploads/$file\" download=\"$file.pdf\"><img src=\"immagini/download.png\" alt=\"download\" /></a>";
                            echo 
    "</div>";
                            echo 
    "<div class=\"clear\"></div>";
                            echo 
    "</div>";
                        }
                        
    clearstatcache();
                    
    ?>
    Perchè non funziona? (A parte il fatto che io sia una pippa con il PHP ancora ) Grazie a tutti!
    il codice è sempre questo. ho tolto usort() con la funzione ordina, ma ora la funzione dove la metto? L'ho messa nel file config.php al posto di ordina. Ho provato diverse posizioni: dopo e prima dell'opendir(), prima e dopo la formazione di $file_array e al posto della formazione di file_array.

    se non ho capito male lui riordina il contenuto della cartella e non di un array come facevo in partenza. e mi restituisce un array. perè me li mette in ordine alfabetico.
    Ultima modifica di simba92; 24-11-2014 a 18:32
    Paterno' Red Sox Baseball - www.redsoxpaterno.com

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2013
    Messaggi
    32
    Edit dell'ultimo minuto: sono diventato pazzo dopo aver scoperto di avere combattuto tutto il finesettimana contro questa funzione che richiamavo come scandir() invece di scan_dir()

    grazie comunque per i consigli! alla prossima!
    Paterno' Red Sox Baseball - www.redsoxpaterno.com

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.