Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    8

    Ordinare lista di cartelle con readdir?

    Buongiorno a tutti,
    ho un problema che non sto riuscendo a risolvere, anche se probabilmente banale:

    questo codice mi serve per stampare a video una lista di cartelle contenute nel path, permettendomi di contare anche quanti file risiedono dentro ogni cartella. Il dubbio che mi sorge è come posso fare per ordinare in ordine numerico (ogni cartella inizia con 3 numeri) la stampa a video.

    Codice PHP:
    <?php
    $path 
    "fatture/".$nmese."-".$mese."-".$anno."/";


    if (
    file_exists($path)) {
    $directory $path;
    if (
    is_dir($directory)) {
    if (
    $directory_handle opendir($directory)) {
    while ((
    $file readdir($directory_handle)) !== false) {
    if((!
    is_dir($file))&($file!=".")&($file!=".."))
    {
    $path2 $path.$file;
    $nfile 0;


    if (
    file_exists($path2)) {
    $directory2 $path2;
    if (
    is_dir($directory2)) {
    if (
    $directory_handle2 opendir($directory2)) {
    while ((
    $file2 readdir($directory_handle2)) !== false) {
    if((!
    is_dir($file2))&($file2!=".")&($file2!=".."))
    $nfile++;
    }
    closedir($directory_handle2);
    }
    }
    }
    echo 
    "<a href='cartella.php?path=".$path.$file."&nmese=".$nmese."&mese=".$mese."&anno=".$anno."'><div class='lista'><x style='float: left'>".$file."</x><x style='float: right;'>Elementi interni: ".$nfile."</x><br /></div></a>";
    }
    }
    closedir($directory_handle);
    }
    }
    } else {
    if(
    $anno != ''mkdir ($path0755);
    }
    ?>

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    11,645
    Considera l'uso di scandir() che ti permette di indicare l'ordine in cui vuoi file e cartelle.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    8
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Considera l'uso di scandir() che ti permette di indicare l'ordine in cui vuoi file e cartelle.

    Grazie, con scandir() ho risolto semplificando anche tutto il codice (eliminando i controlli se ciò che cerco sia veramente una cartella e senza bisogno di aprirla per leggerla)

    Allego il codice nel caso possa servire a qualcuno in futuro

    Codice PHP:
    <?php        $path "fatture/".$nmese."-".$mese."-".$anno."/";                $file scandir($path1);                $n=0;                if (file_exists($path)) {                    while($n <= count($file)){                        $nfile $path.$file[$n]."/";                        $nfile scandir($nfile);                        $nfile count($nfile)-2;                        if((!is_dir($file[$n]))&($file[$n]!=".")&($file[$n]!="..")&($file[$n]!=""))                        echo "<a href='cartella.php?path=".$path.$file[$n]."&nmese=".$nmese."&mese=".$mese."&anno=".$anno."'><div class='lista'><x style='float: left'>".$file[$n]."</x><x style='float: right;'>Elementi interni: ".$nfile."</x><br /></div></a>";                        $n++;                    }                } else {                        if($anno != ''mkdir ($path0755);                }        ?>

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    8
    Ri-posto il codice perché nel precedente messaggio l'ho copiato ed incollato da Atom e non si è indentato per bene!

    Codice PHP:
    <?php$path "fatture/".$nmese."-".$mese."-".$anno."/";$file scandir($path1);$n=0;if (file_exists($path)) {while($n <= count($file)){$nfile $path.$file[$n]."/";$nfile scandir($nfile);$nfile count($nfile)-2;if((!is_dir($file[$n]))&($file[$n]!=".")&($file[$n]!="..")&($file[$n]!=""))echo "<a href='cartella.php?path=".$path.$file[$n]."&nmese=".$nmese."&mese=".$mese."&anno=".$anno."'><div class='lista'><x style='float: left'>".$file[$n]."</x><x style='float: right;'>Elementi interni: ".$nfile."</x><br /></div></a>";$n++;}} else {if($anno != ''mkdir ($path0755);}?>

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    8
    Vabbè ci rinuncio, lascio risolvere ad un mod sorry

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    11,645


    Se la formattazione non ti funziona col copia/incolla vuol dire che il tuo editor usa un carattere di ritorno a capo che non è quello usato sul server del forum, quindi dovresti riformattare il codice da qui.
    Ora ci provo io, sperando che il filtro antispam capriccioso non blocchi la modifica del codice.

    Edit: niente, mi blocca la modifica
    Ultima modifica di Alhazred; 11-06-2019 a 11:03

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    8
    Purtroppo ora non ho tempo di farlo io perchè sono in ufficio, in ogni caso grazie ancora per l'aiuto e spero di ricordarmi di farlo. POST CHIUSO

Tag per questa discussione

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 © 2019 vBulletin Solutions, Inc. All rights reserved.