Visualizzazione risultati 1 fino 16 di 16

Discussione: elencare cartelle

  1. #1
    Guest

    Predefinito elencare cartelle

    Ciao a tutti... io ho bisogno di prelevare l'elenco delle sottocartelle della cartella album

    lo script mostra sopra una immagine e sotto il nome dell'album.. il tutto messo in una tabella...
    quindi ho scritto:
    Codice PHP:
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <?php
    foreach (glob("./album/*") as $filename) {
    print
    '<tr><td><img src="book_img/album.png" width="48" height="48" /></td></tr><tr><td>' . $filename . '</td></tr>';
    }
    ?>
    </table>
    e funziona... ma ora volevo perferzionarlo ovvero:

    1. i file vengono inseriti uno sotto l'altro.. io vorrei venissero uno affianco all'altro
    2. i nomi vengono stampati come ./album/1 è possibile mascherare il ./album/ e far comparire solo l'1?

    vi ringrazioin anticipo
    Ultima modifica di fendermx : 28-02-2011 alle ore 20.24.15

  2. #2
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    provo a fartelo
    Ultima modifica di Xsescott : 28-02-2011 alle ore 21.40.28
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  3. #3
    Guest

    Predefinito

    grazie mille!!!

  4. #4
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    corretto l'errore:
    Codice PHP:
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <?php
    $NumElementiXRiga
    = 5;
    $Elementi = 0;
    $FineRiga = true;
    $AttendoChiusura = true;
    foreach (
    glob("./album/*") as $filename) {

    if(
    $Elementi%($NumElementiXRiga-1) == 0 AND $FineRiga) {print '<tr>'; }

    $filename = preg_split('[/]', $filename);

    print
    '<td>
    <p style="text-align:center"><img src="book_img/album.png" width="48" height="48"/></p>
    <p style="text-align:center">'
    . $Elementi." ".$filename[count($filename)-1] . '</p>
    </td>'
    ;

    if(
    $Elementi%($NumElementiXRiga-1) == 0 AND !$FineRiga){ print '</tr>';}

    if(
    $Elementi%($NumElementiXRiga-1) == 0) {
    if(
    $FineRiga) {$FineRiga = false; $Elementi++;}
    else{
    $FineRiga = true; $Elementi=0;}
    }
    else{
    $Elementi++;}
    }
    if(!
    $FineRiga){ print '</tr>';}
    ?>
    </table>
    ora dovrebbe essere tutto ok ;)
    ciao
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  5. #5
    Guest

    Predefinito

    ti ringrazio!!!

  6. #6
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    comunque il codice è scritto malino, dato che azzero la variabile elementi puoi anche usare i valori 1 e 5 per inserire i tag tr, e risparmi un bel pò di codice. In realtà era stato pensato senza dover azzerare la variabile a ogni nuova riga.

    EDIT:
    ecco cosa intendevo
    Codice PHP:
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <?php
    $NumElementiXRiga
    = 5;
    $Elementi = 0;
    foreach (
    glob("./album/*") as $filename) {

    if(
    $Elementi == 0) {print '<tr>'; }

    $filename = preg_split('[/]', $filename);

    print
    '<td>
    <p style="text-align:center"><img src="book_img/album.png" width="48" height="48"/></p>
    <p style="text-align:center">'
    .$filename[count($filename)-1] . '</p>
    </td>'
    ;

    if(
    $Elementi == ($NumElementiXRiga-1)){
    print
    '</tr>';
    $Elementi = 0;
    }
    else{
    $Elementi++;}
    }
    if(
    $Elementi < ($NumElementiXRiga-1)){ print '</tr>';}
    ?>
    </table>
    Ultima modifica di Xsescott : 01-03-2011 alle ore 03.31.31
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  7. #7
    Guest

    Predefinito

    ciao.. ti ringrazio per lo scrit precedente... ho fatto alcune modifiche per adattarlo alla mia pagina e devo dire che funziona benissimo...

    ora pero ho un problema simile...

    ho una form select dove voglio vengano elencate le cartelle.. ho scritto quanto segue:

    Codice PHP:
    <form name="form1" id="form1">
    <div align="center">
    <select name="menu1" onchange="MM_jumpMenu('parent',this,0)">
    <option value=""> </option>
    <?php
    $cartrella
    = "album/";

    $options = '';
    foreach (
    glob("./album/*")/*, 'is_dir'*/ as $dir)
    {
    $filename = basename($dir);
    $options .= '<option value="' . $cartrella . $filename . '">' . $filename . '</option>';
    echo
    $options;
    }


    ?>

    </select>
    </div>
    </form>
    per funzionare funziona... ma tipo me ne elenca 2 o 3 uguali... come posso risolvere?

  8. #8
    Guest

    Predefinito

    se hai php5 io la farei così:

    Codice PHP:
    $cartella = 'album/';
    $array_contenuto_cartella = scandir($cartella);
    echo
    '<select ame="menu1" onchange="MM_jumpMenu(\'parent\',this,0)">
    <option value=""> </option>'
    ;
    foreach(
    $array_contenuto_cartella as $contenuto)
    {
    if(
    filetype($cartella.'/'.$contenuto) == 'dir' AND $contenuto!='.' AND $contenuto!= '..')
    {
    echo
    '<option name="'.$contenuto.'">';
    echo
    $contenuto;
    echo
    '</option>';
    }
    }
    echo
    '</select>';
    Ultima modifica di miniscript : 05-03-2011 alle ore 13.13.14

  9. #9
    Guest

    Predefinito

    non c'e l'ho attivo su altervista, xke se vado ad attivarlo joomla mi va in casino...

  10. #10
    Guest

    Predefinito

    allora fai questa prova. A ciò che ti ho postato modifica il secondo rigo in questo modo
    Codice PHP:
    $array_contenuto_cartella = glob($cartella.'*');
    ... non ti garantisco nulla

    RETTIFICA:
    Codice PHP:
    $cartella = 'images/';
    $array_contenuto_cartella = glob($cartella.'*');
    echo
    '<select ame="menu1" onchange="MM_jumpMenu(\'parent\',this,0)">
    <option value=""> </option>'
    ;
    foreach(
    $array_contenuto_cartella as $contenuto)
    {
    if(
    filetype($contenuto) == 'dir' AND $contenuto!='.' AND $contenuto!= '..')
    {
    echo
    '<option name="'.end(explode('/', $contenuto)).'">';
    echo
    end(explode('/', $contenuto));
    echo
    '</option>';
    }
    }
    echo
    '</select>';
    Ultima modifica di miniscript : 05-03-2011 alle ore 15.38.07

  11. #11
    Guest

    Predefinito

    fantastico!!!!!

    grazie mille

  12. #12
    Guest

    Predefinito

    Citazione Originalmente inviato da Xsescott Visualizza messaggio
    corretto l'errore:
    Codice PHP:
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <?php
    $NumElementiXRiga
    = 5;
    $Elementi = 0;
    $FineRiga = true;
    $AttendoChiusura = true;
    foreach (
    glob("./album/*") as $filename) {

    if(
    $Elementi%($NumElementiXRiga-1) == 0 AND $FineRiga) {print '<tr>'; }

    $filename = preg_split('[/]', $filename);

    print
    '<td>
    <p style="text-align:center"><img src="book_img/album.png" width="48" height="48"/></p>
    <p style="text-align:center">'
    . $Elementi." ".$filename[count($filename)-1] . '</p>
    </td>'
    ;

    if(
    $Elementi%($NumElementiXRiga-1) == 0 AND !$FineRiga){ print '</tr>';}

    if(
    $Elementi%($NumElementiXRiga-1) == 0) {
    if(
    $FineRiga) {$FineRiga = false; $Elementi++;}
    else{
    $FineRiga = true; $Elementi=0;}
    }
    else{
    $Elementi++;}
    }
    if(!
    $FineRiga){ print '</tr>';}
    ?>
    </table>
    ora dovrebbe essere tutto ok ;)
    ciao

    mi domandavo...

    vengono stampate in orgine alfabetico, è possibile invece stamparle in ordine di data creazione del file/cartella?

  13. #13
    Guest

    Predefinito

    per i file c'è filemtime()
    per le directory non saprei...

  14. #14
    Guest

    Predefinito

    be le cartelle vengono viste come file no? almeno con il comando glob se impostiamo *vede anche le directory...

    ad ogni modo mi son letto http://php.net/manual/en/function.filemtime.php me non capisco dove potrei agire sul tuo script al fine di ottenere il risultato per data...

  15. #15
    Guest

    Predefinito

    ti ripeto che nn sò che effetto ha filemtime() sulle cartelle... ma ammesso che funzioni:
    - con il timestamp ti crei un array bidimensionale con questa struttura
    Codice PHP:
    $var = array(
    0 => array(
    'nome_cartella' => 'tizio',
    'timestamp' => 123456789),
    1 => array(
    'nome_cartella' => 'caio',
    'timestamp' => 146789545)
    );
    - riordini l'array con array_multisort()

  16. #16
    Guest

    Predefinito

    scusa del ritardo ma per motivi di lavoro non ho piu avuto molto tempo...

    non ho capito molto bene cosa intendi

Regole di scrittura

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