Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Elencare le directory con una profondità di 1

    Salve. Ho trovato sul sito php.net questa funzione che elenca tutti i file contenuti in una directory:

    codice:
    <?php
    if ($handle = opendir('.'))
      {
        while (false !== ($file = readdir($handle)))
             {
               if ($file != "." && $file != "..")
                 {
                   echo "$file\n";
                 }
             }
        closedir($handle);
      }
    ?>
    Io l'ho modificata in questo modo per farmi dare l'elenco delle sole cartelle:

    codice:
    if ($handle = opendir('../modules/'))
      {
         while (false !== ($dir = readdir($handle)))
              {
                 if ($dir != "." && $dir != ".." && is_dir($dir))
                   {
                      echo "$dir
    \n";
                   }
              }
         closedir($handle);
      }
    Il problema è che sembra non funzionare. Qualcuno mi dà una mano?

    Io voglio ottenere una lista delle cartelle presenti nella directory indicata con una profondità di uno.

    codice:
    directory
    |_ Directory 1
    |  |_ Directory 2
    |_ Directory 3
    Nell'esempio voglio che vengano stampate solo Directory 1 e Directory 3. E' la prima volta che lavoro con queste funzioni e quindi non è che ci capisca molto. Mi potete dare una mano? Grazie! Ciao!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  2. #2
    Ciao,
    prova questa dovrebbe andare:
    $directoryDaSfogliare = "nomeDir";

    $dir = opendir($directoryDaSfogliare);
    while($element = readdir($dir)){
    if($element!='.' && $element!='..' && is_dir($element)){
    echo $element."
    ";
    }
    }
    http://www.beavermag.it

  3. #3
    Guarda qui e poi vedi il metodo che mi hai suggerito: è un modo scorretto di ottenere quello che mi serve. Vorrei, fin quando è possibile, evitare di utilizzare modi scorretti o "pericolosi"! Cmq grazie per l'aiuto!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  4. #4

    Re: Elencare le directory con una profondità di 1

    codice:
    $path='../modules/';
    if ($handle = opendir($path)){
         while (false !== ($dir = readdir($handle))){
                 if ($dir != "." && $dir != ".." && is_dir($path.$dir)) {
                      echo "{$dir}
    \n";
                   }
              }
         closedir($handle);
      }

  5. #5
    A parte il fatto che mi son dimenticato di chiudere la directory cosa c'è di scorretto o pericoloso?
    http://www.beavermag.it

  6. #6
    ad esempio una cartella che si chiami 0 (zero) farebbe interrompere lo script (false!='0' è false)

  7. #7
    Grazie! Funziona!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  8. #8

    Re: Elencare le directory con una profondità di 1

    Originariamente inviato da mircov
    codice:
    directory
    |_ Directory 1
    |  |_ Directory 2
    |_ Directory 3
    Nell'esempio voglio che vengano stampate solo Directory 1 e Directory 3. E' la prima volta che lavoro con queste funzioni e quindi non è che ci capisca molto. Mi potete dare una mano? Grazie! Ciao!
    e se volessi stampare anche Directory 2? struttura ad albero in pratica...help
    "Ogni artista è un cannibale, ogni poeta è un ladro
    tutti uccidono la loro ispirazione poi cantano del loro dolore "

  9. #9
    Nel frattempo ho creato un bello script che ti può aiutare.

    codice:
    <?PHP
    //seleziono tutte le righe dove "padre = 0" estraendo id e nome
    $query_cats = "SELECT id,name,parent FROM catalogo_categories WHERE parent = 0 ORDER BY name";
    $result_cats = mysql_query($query_cats);
       
    //definisco l'array che poi mi servirà per la funzione
    $categories = array();
    while ($row_cats = mysql_fetch_array($result_cats))
         {
    	// Per ogni riga estratta passo id e nome
    	// alla funzione che poi scorre l'albero
            ShowCats($row_cats['id'],$row_cats['name'],'catalogo_categories');
    		   
    	// Stampo i dati estratti
    	echo $row_cats['id'] . ' ' . $row_cats['name'] . '
    ';
    			     
    	// stampo il risultato della funzione
    	while (list($name, $id) = each ($categories))
                 {
    		echo  $id . ' ' . $name . '
    ';
    	     }
         }
    ?>
    Questo, invece, è il contenuto del fle della funzione che deve essere incluso nelle pagine dove vuoi visualizzare le directories

    codice:
    <?php
    function ShowCats ($id,$name,$table)
            {
    	   global $db, $categories;
    	   $query = "SELECT id,name,parent FROM $table WHERE parent=$id ORDER BY name";
    		  
               $result = mysql_query($query,$db);
    	   while ($row = mysql_fetch_array($result))
    		{
    	           $menu = "$name / $row[name]";
    		   $categories["$menu"] = "$row[id]";
    		   ShowCats ($row['id'],$menu,$table);
    	        }
    	   return $categories;
            }
    ?>
    Ciao ciao!

    PS
    Siamo pure quasi paesani! Io sono di Nocera Inferiore!

  10. #10
    ciao paesà
    scusa ma lo script che hai postato non fa riferimento ad un db? a me serve solo leggere la struttura delle directory
    fammi sapere
    "Ogni artista è un cannibale, ogni poeta è un ladro
    tutti uccidono la loro ispirazione poi cantano del loro dolore "

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.