+ Rispondi alla Discussione
Risultati da 1 a 17 di 17

[Tutorial] Esplorare le cartelle

Ultimo Messaggio di paperinik4 il:
  1. #1
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Localit
    Messina
    Messaggi
    7,236
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita

    [Tutorial] Esplorare le cartelle

    Brevissimo tutorial, su come navigare all'interno di cartelle e sottocartelle, la base di un vero e proprio filemanager.
    La visualizzazione delle cartelle sopra i file.
    Spero possa essere utile a qualcuno

    manager.php
    Codice PHP:
    <?
    // Prendo dalla variabile get la cartella che voglio esplorare
    $c = (isset($_GET['c'])) ? $_GET['c'] : '';

    // Nome della cartella
    $car 'cartella/'.$c.'/';

    function 
    GetFile($car)
    {
    global 
    $c;
    // Se non  un cartella esco
    if(!is_dir($car))
        return 
    0;

    // Opendir  la funzione per aprire la cartella
    $handle opendir($car);

    // Ciclo la cartella
    while (false !== ($files readdir($handle)))
    {
        
    // Stampo i file
        
    if ($files != '.' && $files != '..')
        {
            if(
    is_dir($car.$files))
                
    $vc[] = $files;
            else
                
    $vf[] = $files;
        }

    }
        
    // Se sono in una cartella mostro il pulsante per andare alla cartella principale
        
    if($c != '')
            echo 
    '<a href="manager.php">Pagina Principale</a><br>';
            
        
    // Stampo le cartelle e i file
        
    echo 'Catelle:<br>';
        for(
    $i=0$i<count($vc); $i++)
            echo 
    '<a href="manager.php?c='.$c.'/'.$vc[$i].'">'.$vc[$i].'</a><br>';
        echo 
    'File:<br>';
        for(
    $i=0$i<count($vf); $i++)
            echo 
    $vf[$i].'<br>';
    }

    // Richiamo La funzione
    GetFile($car);
    ?>
    Con sti tutorial sto diventando noioso

  2. #2
    Consiglio Direttivo L'avatar di Samyorn
    Data Registrazione
    Dec 2007
    Localit
    Catania
    Messaggi
    5,913
    Segui Samyorn su Twitter Aggiungi Samyorn su Google+ Aggiungi Samyorn su Facebook Aggiungi Samyorn su Linkedin
    Assolutamente no

    Continua continua che io appunto tutto
    MODFunzioni di PHP Qui, Quo, Qua
    Si parla poco di SMF? Sentiamo l'opinione di chi lo ha provato. Ti amo...brindiAMO?
    Conosci GTLab? Devi scegliere un CMS per Forum e non sai quale? Guarda qu!!

  3. #3
    Esperto L'avatar di Jeeves
    Data Registrazione
    May 2008
    Messaggi
    338
    TheDarkIta, ti posso dire una cosa?


    Ad ogni funzione di php devi mettere perforza return() altrimenti leggi l'errore che ti d, se non sai che mettere a return() metti true

  4. #4
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Localit
    Messina
    Messaggi
    7,236
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    Che errore da?

  5. #5
    fm7
    fm7  offline
    User L'avatar di fm7
    Data Registrazione
    Feb 2006
    Messaggi
    43
    Ciao a tutti

    ho provato il codice e funziona egregiamente...

    Ho inserito la funzione per rendere il file cliccabile ma non mi si apre correttamente e poi vorrei visualizzare solo file con estensione .txt.

    Vi posto il codice modificato:


    Codice PHP:
    <?
    // Prendo dalla variabile get la cartella che voglio esplorare
    $c = (isset($_GET['c'])) ? $_GET['c'] : '';

    // Nome della cartella
    $car './'.$c.'/';

    function 
    GetFile($car)
    {
    global 
    $c;
    // Se non  un cartella esco
    if(!is_dir($car))
        return 
    0;

    // Opendir  la funzione per aprire la cartella
    $handle opendir($car);

    // Ciclo la cartella
    while (false !== ($files readdir($handle)))
    {
        
    // Stampo i file
        

    if ($files != '.' && $files != '..')
        {
            if(
    is_dir($car.$files))
                
    $vc[] = $files;
            else
                
    $vf[] = $files;
                
                
                
                
                
        }

    }
        
    // Se sono in una cartella mostro il pulsante per andare alla cartella principale
        
    if($c != '')
            echo 
    '<a href="testhome.php">Pagina Principale</a><br>';
            
        
    // Stampo le cartelle e i file
        
    echo 'Catelle:<br>';
        for(
    $i=0$i<count($vc); $i++)
            echo 
    '<a href="testhome.php?c='.$c.'/'.$vc[$i].'">'.$vc[$i].'</a><br>';
        echo 
    '<br>';
        for(
    $i=0$i<count($vf); $i++)
            echo 
    '<a href="testhome.php?c='.$c.'/'.$vc[$i].'/'.$vf[$i].'">'.$vf[$i].'</a><br>';//ho modificato questa sezione
    }

    // Richiamo La funzione
    GetFile($car);
    ?>
    Grazie per l'aiuto.

    Manuel.
    Ultima modifica di Thedarkita; 22-09-09 alle 20:13 Motivo: Inizia con una maiuscola e termina con un punto, aggiunti bbcode

  6. #6
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Localit
    Messina
    Messaggi
    7,236
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    Per rendere i file txt cliccabili dovresti fare cosi:
    Codice PHP:
     <?php
    // Prendo dalla variabile get la cartella che voglio esplorare
    $c = (isset($_GET['c'])) ? $_GET['c'] : '';

    // Nome della cartella
    $car 'cartella/'.$c.'/';

    function 
    GetFile($car)
    {
    global 
    $c;
    // Se non  un cartella esco
    if(!is_dir($car))
        return 
    0;

    // Opendir  la funzione per aprire la cartella
    $handle opendir($car);

    // Ciclo la cartella
    while (false !== ($files readdir($handle)))
    {
        
    // Stampo i file
        
    if ($files != '.' && $files != '..')
        {
            if(
    is_dir($car.$files))
                
    $vc[] = $files;
            else
                
    $vf[] = $files;
        }

    }
        
    // Se sono in una cartella mostro il pulsante per andare alla cartella principale
        
    if($c != '')
            echo 
    '<a href="manager.php">Pagina Principale</a><br>';
            
        
    // Stampo le cartelle e i file
        
    echo 'Catelle:<br>';
        for(
    $i=0$i<count($vc); $i++)
            echo 
    '<a href="manager.php?c='.$c.'/'.$vc[$i].'">'.$vc[$i].'</a><br>';
        echo 
    'File:<br>';
        for(
    $i=0$i<count($vf); $i++)
    if(
    substr($vf[$i], -33) == 'txt')
            echo 
    '<a href="'.$car.$vf[$i].'">'.$vf[$i].'</a><br>';
    }

    // Richiamo La funzione
    GetFile($car);
    ?>
    Non ho testato, facci sapere se funziona correttamente.

  7. #7
    fm7
    fm7  offline
    User L'avatar di fm7
    Data Registrazione
    Feb 2006
    Messaggi
    43
    Grazie Trackback

    funziona alla grandissima.

    Pensa che non ci ho dormito per notti per risolvere questo problema con un codice scritto da me.

    Sai cosa?, stavo spulciando il manuale php

    perch per quello che serve a me...

    mi servirebbe togliere l'estensione txt e vedere il solo titolo del file.

    In ogni caso il file funziona perfettamente

    e mi hai dato una grossa mano

    a buon rendere.
    Ultima modifica di Thedarkita; 22-09-09 alle 20:39 Motivo: Inizia con una maiuscola e termina con un punto

  8. #8
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Localit
    Messina
    Messaggi
    7,236
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    Prova cosi:
    Codice PHP:
    <?php
    // Prendo dalla variabile get la cartella che voglio esplorare
    $c = (isset($_GET['c'])) ? $_GET['c'] : '';

    // Nome della cartella
    $car 'cartella/'.$c.'/';

    function 
    GetFile($car)
    {
    global 
    $c;
    // Se non  un cartella esco
    if(!is_dir($car))
        return 
    0;

    // Opendir  la funzione per aprire la cartella
    $handle opendir($car);

    // Ciclo la cartella
    while (false !== ($files readdir($handle)))
    {
        
    // Stampo i file
        
    if ($files != '.' && $files != '..')
        {
            if(
    is_dir($car.$files))
                
    $vc[] = $files;
            else
                
    $vf[] = $files;
        }

    }
        
    // Se sono in una cartella mostro il pulsante per andare alla cartella principale
        
    if($c != '')
            echo 
    '<a href="manager.php">Pagina Principale</a><br>';
            
        
    // Stampo le cartelle e i file
        
    echo 'Catelle:<br>';
        for(
    $i=0$i<count($vc); $i++)
            echo 
    '<a href="manager.php?c='.$c.'/'.$vc[$i].'">'.$vc[$i].'</a><br>';
        echo 
    'File:<br>';
        for(
    $i=0$i<count($vf); $i++)
    if(
    substr($vf[$i], -33) == 'txt')
            echo 
    '<a href="'.$car.$vf[$i].'">'.substr($vf[$i],0,strlen($vf[$i])-4).'</a><br>';
    }

    // Richiamo La funzione
    GetFile($car);
    ?>

  9. #9
    fm7
    fm7  offline
    User L'avatar di fm7
    Data Registrazione
    Feb 2006
    Messaggi
    43
    Ti ringrazio davvero molto

    Funziona perfettamente

    Grazie Thedarkita davvero

    Sto cercando di imparare il php

    Ma non essendo il mio primo lavoro...

    Non ho tantissimo tempo..

    Ci sentiamo continuo i miei test

    Ciao grazie ancora
    Ultima modifica di Leonov; 22-09-09 alle 23:03 Motivo: Per favore, iniziare le frasi con la lettera maiuscola.

  10. #10
    fm7
    fm7  offline
    User L'avatar di fm7
    Data Registrazione
    Feb 2006
    Messaggi
    43
    Ciao Thedarkita

    Stavo stavo testando il codice, che va alla grande come ti dicevo,

    ma mi sono accorto che i file non sono in ordine alfabetico...

    Stavo scervellandomi per ordinarlo

    o in ordine alfabetico oppure per uultima modifica

    mi puoi dare un ultima mano?

    Se puoi ti ringrazio molto.

    Buona giornata.
    Ultima modifica di Leonov; 24-09-09 alle 14:29 Motivo: Per favore, iniziare le frasi con la lettera maiuscola.

  11. #11
    User L'avatar di Blancks
    Data Registrazione
    Sep 2009
    Messaggi
    91
    Prova cos:

    Codice PHP:
     <?php
    // Prendo dalla variabile get la cartella che voglio esplorare
    $c = (isset($_GET['c'])) ? $_GET['c'] : '';

    // Nome della cartella
    $car 'cartella/'.$c.'/';

    function 
    GetFile($car)
    {
    global 
    $c;
    // Se non  un cartella esco
    if(!is_dir($car))
        return 
    0;

    // Opendir  la funzione per aprire la cartella
    $handle opendir($car);

    // Ciclo la cartella
    while (false !== ($files readdir($handle)))
    {
        
    // Stampo i file
        
    if ($files != '.' && $files != '..')
        {
            if(
    is_dir($car.$files))
                
    $vc[] = $files;
            else
                
    $vf[] = $files;
        }

    }

    // imposto l'ordinamento alfabetico ai contenuti degli array
    sort($vc);
    sort($vf);

        
    // Se sono in una cartella mostro il pulsante per andare alla cartella principale
        
    if($c != '')
            echo 
    '<a href="manager.php">Pagina Principale</a><br>';
            
        
    // Stampo le cartelle e i file
        
    echo 'Catelle:<br>';
        for(
    $i=0$i<count($vc); $i++)
            echo 
    '<a href="manager.php?c='.$c.'/'.$vc[$i].'">'.$vc[$i].'</a><br>';
        echo 
    'File:<br>';
        for(
    $i=0$i<count($vf); $i++)
    if(
    substr($vf[$i], -33) == 'txt')
            echo 
    '<a href="'.$car.$vf[$i].'">'.substr($vf[$i],0,strlen($vf[$i])-4).'</a><br>';
    }

    // Richiamo La funzione
    GetFile($car);
    ?>

    In sostanza ho adoperato la funzione sort() per ordinare gli array che accumulano i nomi delle cartelle e dei files presenti nella directory specificata.



  12. #12
    fm7
    fm7  offline
    User L'avatar di fm7
    Data Registrazione
    Feb 2006
    Messaggi
    43
    Ciao grazie molte.

    Si va tutto ok tranne una cosa:

    alla fine quando ti trovi nell'ultima directory

    e c' la lista dei file,

    spunta l'errore:

    Warning: sort() expects parameter 1 to be array, null given in

    perch lui non trova pi directory essendoci solo file...

    Sto cercando di rimediare

    Grazie comunque.
    Ultima modifica di Leonov; 24-09-09 alle 14:30 Motivo: Per favore, iniziare le frasi con la lettera maiuscola ed evitare lo stile da telefonino.

  13. #13
    User L'avatar di Blancks
    Data Registrazione
    Sep 2009
    Messaggi
    91
    Puoi ovviare un paio modi:

    1) Definisci i due array all'inizio della funzione ( es: $vc = array(); )
    2) Fai un bel controllo per entrambi del tipo: if (is_array($vc)) sort($vc);



    Prova e fammi sapere

  14. #14
    fm7
    fm7  offline
    User L'avatar di fm7
    Data Registrazione
    Feb 2006
    Messaggi
    43
    Grazie si adesso davvero tutto ok.

    Scusami ma sto imparando il php di sana pianta,

    visto che tutti i miei siti li ho creati con buoni script per carit

    e vanno bene

    per ho l'esigenza di imparare il php il pi possibile....

    Adesso ero curioso su come ordinarli

    per data di modifica o di upload...

    quindi stavo cercando di imparare il comando filemtime

    combinato con il sort

    Comunque grazie ancora ...
    Ultima modifica di Leonov; 24-09-09 alle 14:31 Motivo: Per favore, iniziare le frasi con la lettera maiuscola, curare la punteggiatura ed evitare lo stile-sms.

  15. #15
    fm7
    fm7  offline
    User L'avatar di fm7
    Data Registrazione
    Feb 2006
    Messaggi
    43
    Ciao scusate ma avrei bisogno di un ulteriore aiuto.

    tutto il giorno che ci sbatto la testa ma

    non riesco ad ottenere un' altra funzione.


    Sto cercando di crearmi un un file.php che legga, come il precedente,

    i file in tutte le cartelle e sottocartelle
    ,
    ma che mi visualizzi gli ultimi 10 file uploadati da me,

    o comunque modificati da poco.

    Sto studiando i vari comandi sort e filemdate

    ma per ora pochi risultati...

    Se mi date ancora qualche dritta

    mi fate un grosso piacere.

    In questi anni ho fatto solo il grafico,

    ed da poco che mi cimento con il php.

    Grazie ciao.

    (credo che la punteggiatura sia ok ora, chiedo scusa per il precedente messaggio)
    Ultima modifica di Leonov; 24-09-09 alle 23:17 Motivo: Maiuscole; si prega di evitare lo stile da telefonino.

  16. #16
    User Newbie
    Data Registrazione
    Dec 2010
    Localit
    Milano
    Messaggi
    9
    Ciao a tutti.
    Il sistema funziona perfettamente. L'unica cosa che non riesco a fare realizzare un link alla cartella di livello superiore.
    Se, ad esempio, nella root ho cartella 1, al cui interno si trova cartella 2, ed entro in quest'ultima, come faccio a tornare a cartella 1? Il tutorial prevede un link per tornare alla pagina principale ma non per "uscire" dall'ultima cartella in cui si entrati.
    Grazie.

  17. #17
    User
    Data Registrazione
    Jun 2011
    Localit
    Roma
    Messaggi
    122

    [Tutorial] Esplorare le cartelle

    Ciao Thedarkita;

    Mi servirebbe un tuo aiuto a risolvere un grosso problema. So che il post vecchio ma spero che mi risponderai ugualmente. Ho provato il tuo codice, di elenco cartelle e file. Solo che mi servono due modifich e sono le seguenti:

    1) Elencare directory tutte con tutre le estensioni;


    2) Elencare le sottocartelle con tutti i file all'interno delle cartellle e sottocartelle

    3) Debbo inserire il risultato della ricerca in un db.


    Mi puoi aiutare per favore ???? Sono disperato sono mesi che sto cercando inutilmente soluzioni a destra e a manca. Grazie in anticipo

    Il codice il seguente:

    Codice PHP:

        <?php
    // Prendo dalla variabile get la cartella che voglio esplorare
    $c = (isset($_GET['c'])) ? $_GET['c'] : '';

    // Nome della cartella
    $car 'c://'.$c.'/';

    function 
    GetFile($car)
    {
    global 
    $c;
    // Se non  un cartella esco
    if(!is_dir($car))
        return 
    0;

    // Opendir  la funzione per aprire la cartella
    $handle opendir($car);

    // Ciclo la cartella
    while (false !== ($files readdir($handle)))
    {
        
    // Stampo i file
        
    if ($files != '.' && $files != '..')
        {
            if(
    is_dir($car.$files))
                
    $vc[] = $files;
            else
                
    $vf[] = $files;
        }

    }
        
    // Se sono in una cartella mostro il pulsante per andare alla cartella principale
        
    if($c != '')
            echo 
    '<a href="manager.php">Pagina Principale</a><br>';
            
        
    // Stampo le cartelle e i file
        
    echo 'Catelle:<br>';
        for(
    $i=0$i<count($vc); $i++)
            echo 
    '<a href="manager.php?c='.$c.'/'.$vc[$i].'">'.$vc[$i].'</a><br>';
        echo 
    'File:<br>';
        for(
    $i=0$i<count($vf); $i++)
            echo 
    $vf[$i].'<br>';
    }

    // Richiamo La funzione
    GetFile($car);
            
    ?>
        </body>
    </html>
    Ah, un ultima cosa. La sottoglineatura non mi servirebbe in quanto devo leggere i file all'interno di ogni cartella. Spero di essermi spiegato al meglio.

+ Rispondi alla Discussione

Tag per Questa Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] Attivato
  • Il codice [VIDEO] Attivato
  • Il codice HTML Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.