Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Elenco SubDirectory

  1. #1
    Utente di HTML.it L'avatar di danlupo
    Registrato dal
    Jul 2009
    Messaggi
    314

    Elenco SubDirectory

    Salve,

    ho questo semplice codice:

    Codice PHP:
    <?php  
    if (($_POST['dir']=='')||($_POST['dir']==' ./')||($_POST['dir']==' ../'))     
    {            
     
    $path='./omero/';     
    }   
      else   
      {       
      
    $path='./omero/'.$_POST['dir']."/";   
          } 
      
    $files1 scandir($path); 
        
    $dire=array();  
       foreach(
    $files1 as $file)
     {   
          if (
    is_dir($path.$file)) 
    {          
       {           
          
    $dire[]=$file;   
              }              
         } 
      
    ?>
     <html>     <head>          <title>         </title>     </head>
         <body>     
    <form action="index.php" method='post'>     
        <?php       
      
    for ($i=0;$i<count($dire);$i++)      
       {    
             
    $dire[$i]=ucfirst($dire[$i]);        
         echo 
    "<input type='submit' name='dir' value='$dire[$i]'.'/''>";  
           }           
               echo 
    $path;    
                  
    ?>   
      </form>     </body> </html>
    E' una bozza di una pagina; il problema è che riesco ad arrivare fino alla prima directory sotto la principale (ad esempio omero/images) ma non riesco ad arrivare alle successive sub directory (ad esempio omero/images/website)

    Qualcuno ha qualche suggerimento?

    ps. non volevo usare le get perchè non mi sembrano 'abbastanza sicure'

    Grazie Daniele

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Guarda questa funzione sul manuale php

    Adattala per le tue esigenze ed hai fatto

    Ciao

  3. #3
    Questa è una funzione pronta che estrapola i nomi e indirizzi dei file nelle directory e subdirectory. Si trova sempre nel manuale PHP.
    Codice PHP:
    <?php 
    function get_subdir_files($main_dir) { 
        
    $dirs scandir($main_dir); 
            foreach(
    $dirs as $dir)  { 
                if (
    $dir === '.' || $dir === '..') { 
                    continue; } 
                
    $files=scandir($main_dir."/".$dir); 
                    foreach (
    $files as $file)  { 
                    if (
    $file === '.' || $file === '..') { 
                        continue; 
                    } else { 
                        
    $result[]=$main_dir.'/'.$dir.'/'.$file
                        } 
                    } 
        }    
        return 
    $result

    ?>

  4. #4
    Utente di HTML.it L'avatar di danlupo
    Registrato dal
    Jul 2009
    Messaggi
    314
    Si ma infatti è proprio quella che ho provato per prima ma purtroppo non stampa nulla anche se la cartella è piena.

    Ad esempio il percorso a cui punta $main_dir è ./omero/images/ che realmente contiene 2 cartelle (website e gallery) ma la funzione restituisce un $result sempre da '0'

  5. #5
    ok l'ho testata. Penso ti convenga fare una funzione da te perchè quella restituisce errore quando nella directory $main_dir ci sono sia cartelle sia documenti.
    Esso (come puoi leggere dal sito) lavora bene per progetti piccoli.
    Infatti legge solo la directory da te indirizzata e le subcartelle dirette. Intendo dire che se nella directory $main_dir ci sono 2 cartelle [ciao1 e ciao2] e esse contengono altre cartelle esse vengono lette come dato semplice senza essere aperte e esplorate.
    Si fermerà dunque a leggere a: $main_dir\ciao1 e $main_dir\ciao2.
    Se vuoi continuare a leggere basta inserire un altro foreach. Ma credo ci siano metodi migliori, per esempio un ciclo.

  6. #6
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Originariamente inviato da clasku
    Guarda questa funzione sul manuale php

    Adattala per le tue esigenze ed hai fatto

    Ciao
    Mi autoquoto perchè avevo sbagliato il link, mancava l'anchor all'esempio giusto...

    Scusa, è questo
    http://www.php.net/manual/en/functio...dir.php#102505

  7. #7
    Utente di HTML.it L'avatar di danlupo
    Registrato dal
    Jul 2009
    Messaggi
    314
    Si infatti ho notato che da errore, purtroppo negli ultimi giorni ne ho testate almeno una trentina di funzioni diverse ma nessuna che riesca ad arrivare correttamente a main -> primo livello -> secondo livello.

    Il mio 'Download Center contiene Home -> Nome Spettacolo-Materiale(formato da diverse cartelle)prima di arrivare ai files veri e propri e non ne trovo uno che faccia senza problemi questo lavoro..

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.