Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2000
    Messaggi
    151

    Ordinamento SottoCartelle

    Ciao a tutti, seguendo i consigli che ho trovato nel forum sono riuscito a far visualizzare in php tutte le sottocartelle presenti in una cartella; ora però mi servirebbe l'ultimo passetto ovvero riordinarle in base alla data di creazione, qualcuno mi può aiutare? Potroppo non ho sottomano il mio libro di php e sono un pò in crisi, ciao e garzie


    Codice PHP:

    <?php
    $sub 
    = ($_GET['dir']);
    $path '/web/htdocs/';
    $path $path "$sub";
    $dh opendir($path);
    $i=1;
    while ((
    $file readdir($dh)) !== false) {
        if(
    $file != "." && $file != "..") {
                if (
    substr($file, -4, -3) =="."){
                echo 
    "$i$file 
    "
    ;
                }else{           
            echo 
    "$i. [url='http://www.xxxx.it']$file[/url]
    "
    ;
              }
            
    $i++;
        }
    }
    closedir($dh);
    ?>

    Questo è il codice su cui sto lavorando :>

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    al posto di stampare tutto al volo, metti in un array i nomi delle directory, come indice usa il dato che ricevi da filemtime($file) che è il timestamp di creazione/modifica, poi usa ksort per ordinare l'array e infine stampane il contenuto.

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2000
    Messaggi
    151
    Originariamente inviato da gianiaz
    al posto di stampare tutto al volo, metti in un array i nomi delle directory, come indice usa il dato che ricevi da filemtime($file) che è il timestamp di creazione/modifica, poi usa ksort per ordinare l'array e infine stampane il contenuto.

    ciao

    ciao , purtroppo senza il mio libro tra le mani non riesco a farlo, tra l'altro le sottocartelle sono generate di continuo, potrebbe creare problemi?Vorrei che fosse tutto automatico...sono un pò in cunfusione lo ammetto
    grazie per il consiglio!

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    non hai il libro ma hai internet!!

    Innanzitutto ti consiglio di cercare le funzioni che ti ho passato su php.net

    comunque al volo perchè non ho tempo di scriverti il codice e controllarlo.

    prima del while dichiari un array di cartelle vuoto:

    $cartelle = array();

    dentro il while anzichè l'echo metti

    $cartelle[filemtime($file)] = $file; // o se vuoi evitare tutto il percorso in visualizzazione basename($file);

    finito il while,

    ksort($cartelle);

    infine cicli l'array e lo stampi:

    foreach($cartelle as $data_creazione => $nome_cartella) {
    echo date('d-m-Y', $data_creazione)." - ".$nome_cartella;
    }

    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2000
    Messaggi
    151
    Originariamente inviato da gianiaz
    non hai il libro ma hai internet!!

    Innanzitutto ti consiglio di cercare le funzioni che ti ho passato su php.net

    comunque al volo perchè non ho tempo di scriverti il codice e controllarlo.

    prima del while dichiari un array di cartelle vuoto:

    $cartelle = array();

    dentro il while anzichè l'echo metti

    $cartelle[filemtime($file)] = $file; // o se vuoi evitare tutto il percorso in visualizzazione basename($file);

    finito il while,

    ksort($cartelle);

    infine cicli l'array e lo stampi:

    foreach($cartelle as $data_creazione => $nome_cartella) {
    echo date('d-m-Y', $data_creazione)." - ".$nome_cartella;
    }

    ciao
    ahah beh si hai ragione, ma il libro è il libro

    Grazie per l'aiuto cercherò di venirne a capo, sperendo che ci riesca prima di soccombere allo sconforto

    Bisogna avere pazienza con gli utenti del forum vecchi come me...

    Vado a provare speriamo bene

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    guarda che se sei vecchio come penso leggendo il nick... sono più vecchio io...

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2000
    Messaggi
    151
    Originariamente inviato da gianiaz
    guarda che se sei vecchio come penso leggendo il nick... sono più vecchio io...
    semplice, evidentemente tu li porti bene...

    Oh Famoso Virgilio, io ti richeggio...

    questo è quanto ho fatto, ovviamente non va:

    Codice PHP:
    <?php
    $sub 
    = ($_GET['dir']);
    $path '/web/htdocs/etc.';
    $path $path "$sub";
    $dh opendir($path);
    $cartelle = array();
    $i=1;
    while ((
    $file readdir($dh)) !== false) {
        if(
    $file != "." && $file != "..") {
                if (
    substr($file, -4, -3) =="."){
              
    $cartelle[filemtime($file)] = $file;

              }
            
    $i++;
        }
    }
    ksort($cartelle);

    foreach(
    $cartelle as $data_creazione => $nome_cartella) {
    echo 
    date('d-m-Y'$data_creazione)." - ".$nome_cartella;
    }


    closedir($dh);
    ?>

    Ridi pure se è il caso

  8. #8
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    ti stampa qualche errore?

    Comunque mi sembra che tu verifichi che il nome della cartella contenga un punto alla posizione -4, il che mi fa pensare che tu voglia verificare che quello sia un nome di file...

    a questo punto ti direi di cambiare l'if in questo modo:


    if($file != "." && $file != ".." && is_dir($file)) {
    $cartelle[filemtime($file)] = $file;
    }


  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2000
    Messaggi
    151
    Uhm no nessun errore, ho provato anche con la modifica, la cosa strana è che da pagina bianca, nessun avviso, questo è il codice che ho provato ora:

    Codice PHP:
    <?php
    $sub 
    = ($_GET['dir']);
    $path '/web/htdocs/etc.';
    $path $path "$sub";
    $dh opendir($path);
    $cartelle = array();

    while ((
    $file readdir($dh)) !== false) {
    if(
    $file != "." && $file != ".." && is_dir($file)) {
    $cartelle[filemtime($file)] = $file;
    }
     }
    ksort($cartelle);

    foreach(
    $cartelle as $data_creazione => $nome_cartella) {
    echo 
    date('d-m-Y'$data_creazione)." - ".$nome_cartella;
    }


    closedir($dh);
    ?>

    A parte gli scherzi, grazie davvero per l'aiuto

  10. #10
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    è normale quel punto dopo etc? (nella variabile path)

    ciao

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.