Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141

    Creare Array da albero di cartelle

    ciao,
    forse il titolo non è molto esplicativo, comunque, dovrei creare un array con dentro delle immagini.
    Faccio un esempio:

    cartella1
    --img1
    --img2
    ---sottocartella1
    ------img3
    ------img4

    cartella2
    --img1
    ----sottocartella2
    ------img2

    cartella3
    --img3


    dovrei recuperare un array così composto:

    $array['cartella1'][0] = img1;
    $array['cartella1'][1] = img2;
    $array['cartella1']['sottocartella1'] = img3;
    $array['cartella1']['sottocartella1'] = img4;


    $array['cartella2'][0] = img1;
    $array['cartella2']['sottocartella2'] = img2;

    $array['cartella3'][0] = img1;


    ho trovato questo sul forum:

    Codice PHP:
    function read_dir $path )
    {                      
       
    $handle opendir$path ) ;
       
       while ( 
    $file readdir$handle ) )
            {              
               if ( 
    $file != "."  && $file != ".." && $file != NULL && $file != 'NULL' )
                 {
                    echo 
    $file."
    "
    ;
                    if ( 
    is_dir$path $file ) )
                      {
                        
    read_dir$path $file ) ;
                      }
                 }
           }
    }


    read_dir($path); 
    contenuto...

    Però, al momento non mi viene in mente come poter creare un array come quello che serve a me....

    grazie in anticipo.
    ciao

  2. #2
    Nella funzione che hai trovato c'è già tutto quello che ti serve per scorrere ricorsivamente il file-system.

    Devi aggiungere un parametro nel prototipo della funzione,
    cioè l'array con cui vuoi conservare le immagini.

    Penso che questo parametro debba essere passato per riferimento,
    ossia debba essere come un puntatore.

    Ciao
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    mi potresti fare un esempio di quello che intendi?
    perchè ci ho provato, ma con scarsi risultati.

    thnx
    ciao

  4. #4
    function read_dir ( $path, &$arr )
    {
    $handle = opendir( $path ) ;

    while ( $file = readdir( $handle ) )
    {
    if ( $file != "." && $file != ".." && $file != NULL && $file != 'NULL' )
    {
    echo $file."
    ";
    if ( is_dir( $path . $file ) )
    {
    read_dir( $path . $file, $arr ) ;
    }
    else
    $arr[count] = $file;
    }
    }
    }

    dovrebbe funzionare,
    ovviamente dei implementare la gestione dell'indice dell'array,
    che io ho solo indicato con 'count'.

    Il passaggio per riferimento è indicato da '&' davanti al parametro:
    così non passi ogni volta la variabile, ma l'indirizzo di memoria dove risiede l'oggetto array.

    Poi fammi sapere.

    mirko
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    102
    Ciao, io dovrei creare una llista di immagini prelevate da un file ogni volta che dall'amministrazione inserisco una nuova immagine.
    Il codice può andare bene?

    Codice PHP:
    function read_dir $path 
    {                       
       
    $handle opendir$path ) ; 
        
       while ( 
    $file readdir$handle ) ) 
            {               
               if ( 
    $file != "."  && $file != ".." && $file != NULL && $file != 'NULL' 
                 { 
                    echo 
    $file."
    "

                    if ( 
    is_dir$path $file ) ) 
                      { 
                        
    read_dir$path $file ) ; 
                      } 
                 } 
           } 



    read_dir($path); 
    Il problema succesivo è che devo dare il risultato del tutto al codice javascript per visualizzare le immagini.



    Questo codice è statico scritto in javascript:
    var myvacation=new Array()
    myvacation[0]=["img/1.jpg", "", "photo1-large.jpg"]
    myvacation[1]=["img/2.jpg", "Our car", ""]



    var thepics = new photogallery(myvacation, 3, 1, '700px', '600px')


    Come posso fare ?

    grazie mille

  6. #6
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    myvacation[1]=["img/2.jpg", "Our car", ""]


    Our Car cos'è ? e il terzo valore?

    inoltre le immagini risiedono in un' unica cartella e basta?
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    102
    risiedono tutte in una cartella le immagini..

    our car è il nome che ho dato all'immagine.

  8. #8
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Codice PHP:

    $list_img
    =glob("$cartella/*.jpg");

    echo 
    "var immagini=new Array();\n";

    foreach (
    $list_img as $key=>$file)
    {
    echo 
    "immagini[$key]=['$file','tuo titolo','tuo valore'];\n";

    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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.