Visualizzazione risultati 1 fino 8 di 8

Discussione: Ouput ordinato

  1. #1
    Guest

    Predefinito

    Ciao a tutti, ho un codice come quello qui sotto che lista il contenuto di una directory e ne restituisce il link. Avrei bisogno di avere in output il contenuto della dir ordinate numericamente (1-2-3-etc) e alfabeticamente (A-B-C-etc-a-b-c-etc) ma non so come fare.
    Qualcuno potrebbe darmi una mano? Purtoppo sono abbastanza ai primi passi con il php e cerco di arrangiarmi qui e la', ma non sono riuscito a trovare nulla che facesse al caso mio :(


    <?
    $dir = "directory/"; //qui ci metti la dir che vuoi indicizzare, con lo "/" finale
    $a=opendir($dir);
    while($file=readdir($a))
    {
    if(ereg("^\.",$file)) continue;
    {
    if (($file != "index.php")) //escludo dall'indicizzazione i file che non devono essere visualizzati
    {
    $filefinale=ereg_replace(' ','%20',$file);
    $estensione = explode(".",$file);
    echo "<a href=$dir$filefinale>".$estensione[0]."</a>";
    }
    }
    }
    closedir($a);
    ?>

  2. #2
    Guest

    Predefinito

    purtroppo php non ha nessuna funzione per riordinare i file, quindi li devi mettere in un array e fare il sort, in questo modo:

    [code:1:79e59cc713]
    <?php
    $cartella="CARTELLADEIFILE";

    $dir = dir($cartella);

    while ($file = $dir->read()) {
    // controllo se si tratta di una dir o di un file
    if($file != "." && $file != "..") {
    if (!is_dir($cartella.$file)) {
    // è un file, quindi lo inserisco nell'array
    $array[]=$file;
    }
    }
    }
    $dir->close();
    // ordino l'array dei file in ordine crescente....
    sort($array);
    foreach($array as $file) {
    echo $file."<br>";
    }

    ?>
    [/code:1:79e59cc713]

    il gioco è fatto!!!

  3. #3
    Guest

    Predefinito

    Grazie mille x la risposta, mi sa che mi devo studiacchiare un po' di teoria sugli array, ma ti sono gratissimo x l'aiuto. Appena ho due minuti faccio un paio di prove tattiche e vedo come divertirmi con le nuove scoperte del php :)

  4. #4
    Guest

    Predefinito

    non c'è di che

    ...caspita....gli array sono importantissimi!!!!! corri a studiare!!

  5. #5
    Guest

    Predefinito

    In realta' adesso mi pongo un'altro dubbio, ma se nella cartella ci sono delle dir, con l'array non posso neanche visualizzarle. Io invece volevo visualizzare anche le dir contenute nella dir.
    Cerco di spiegarmi:

    ho una dir denominata tizio che contiene

    tizio/caio
    tizio/caio/mario.jpg
    tizio/sempronio.jpg

    Io vorrei che venissero restituiti in output sia caio sia sempronio.jpg, ma non mario.jpg, quindi mi serve qualcosa che listi il contenuto della dir sia che esse siano altre dir, sia che siano file, ma non in modo ricorsivo.
    Sto facendo un paio di prove con il codice che mi hai proposto, ma sembra + difficile del previsto...

    Correro' a studiare gli array dopo questa serata d'inferno

  6. #6
    Guest

    Predefinito

    basta eliminare la if nel ciclo while...
    [code:1:339a2acc84]
    while ($file = $dir->read()) {
    if($file != "." && $file != "..") {
    $array[]=$file;
    }
    }
    [/code:1:339a2acc84]


  7. #7
    Guest

    Predefinito

    Grazie ancora per l'aiuto, corro subito a studiarmi gli array :)

    Ciao e grazie ancora :D

  8. #8
    Guest

    Predefinito

    prego figurati, siamo quì per questo

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •