Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [PHP] Problema con funzione lettura directory

    Ciao a tutti ho fatto questa semplicissima funzione per leggere all'interno di una directory:

    Codice PHP:
    function scan_dir($dir) {
      if(!
    is_dir($dir)) die ('Questa non è una directory');
      
    $dir_handle opendir($dir);
      
    //echo $dir_handle;
      
    $n_pos 1;
      while (
    false !== ($file readdir($dir_handle))) {
        if(
    $file != "." && $file != ".." && is_dir($file)) {
          echo 
    "$n_pos $file
    "
    ;
          
    $n_pos++;
        }
      }
      
    closedir($dir_handle);

    Il problema è che funziona "ogni tanto", o meglio dandogli in "pasto" alcune cartelle stampa corrtamente SOLO i NOMI DELLE CARTELLE all'interno della cartella specificata.
    Se dal primo IF che si incontra tolgo, commento, la condizione "&& is_dir($file)" allora funziona sempre.
    Io ho messo quella condizione proprio xkè volevo ottenere solo le cartelle contenute all'interno della directory passata come argomento...

    Spero ci sia qualcuo che mi possa aiutare....
    Studente - Smanettone - WebDesigner
    www.vigomeano.it | e altri ancora...

  2. #2
    nessuno?!??!?!?!??!
    Studente - Smanettone - WebDesigner
    www.vigomeano.it | e altri ancora...

  3. #3
    Che significa che funziona "ogni tanto"?
    Quali sono i casi (cioè le cartelle) in cui ti funziona e quelli in cui non va?

    Ciao
    Make Pazziata-tàààà NOT war!

  4. #4
    come spiegare....se chiamo la funzione su una cartella che so che contiene altre sottocartelle funziona, ma se chiamo su un'altra cartella, anche'essa con sotto cartelle, la funzione non stampa niente, pure visualizzando il codice html della pagina non c'è nessuna traccia di quello che dovrebbe stampare la funzione....
    Studente - Smanettone - WebDesigner
    www.vigomeano.it | e altri ancora...

  5. #5
    Sì ma... QUALE è la differenza fra la prima cartella è la seconda?
    Devono essere diverse altrimenti non si spiega perché lo stesso script una volta si comporta in un modo e una volta in un altro...

    I diritti di lettura-scrittura sulle cartelle sono esattamente gli stessi? E i path di appartenenza?
    Lo script ha il diritto di leggere qualsiasi cartella in qualsiasi path?
    ciao
    Make Pazziata-tàààà NOT war!

  6. #6
    eh...è lì il curioso, lo script è in una pagina in una sottocartella nella root del webserver, se tolgo la condizione incriminata mi funziona sempre senza problemi (per far degli esempi, gli dato in pasto la root principale del webserver e mi ha stampato giustamente tutto il contenuto, praticamente tutte cartelle e un file nascosto di sistema, poi ho provato con un'altra cartella + interna, sempre nel Webserver e pure lì tutto bene).
    Le cartelle ho verificato e hanno tutte almeno il diritto d'esecuzione, poi io sono il propietario ed ho il dirtto di scrittura su tutto.
    Cmq se rimetto la condizione incriminata e riprovo a eseguire lo script con le stesse cartelle di prima ecco che iniziano i casini... eseguendolo nella cartella interna funziona, stampa corretamente i nomi delle sottocartelle che trova, mentre se gli dico di stampare il contenuto della root principale del webserver 0....non stampa niente!!!!
    Studente - Smanettone - WebDesigner
    www.vigomeano.it | e altri ancora...

  7. #7
    prova così:

    Codice PHP:
    function scan_dir($dir) {
      if(!
    is_dir($dir)) die ('Questa non è una directory');
      
    $dir_handle opendir($dir);
      
    //echo $dir_handle;
      
    $n_pos 1;
      while (
    false !== ($file readdir($dir_handle))) {
        if(
    $file != "." && $file != ".." && !is_file($file)) {
          echo 
    "$n_pos $file
    "
    ;
          
    $n_pos++;
        }
      }
      
    closedir($dir_handle);

    In pratica ho sostituito la condizione
    && is_dir($file))
    con
    && !is_file($file))

    Ciao

    P.S: adesso è tardi e vado a casa, domani provo nella mia macchina e ti faccio sapere. Bye!
    Make Pazziata-tàààà NOT war!

  8. #8
    ti ringrazio, cmq ho provato il tuo suggerimento ma non funge, cioè l'unica differenza che si nota tra la tua versione e quella senza quella condizione non stampa i file nascosti (es: ".DS_Store" visto che il mio portatile è un mac)...

    se mai mi puoi aiutare con l'altro script (ho creato un'altra discussione!) che dovrebbe fare quello che fa questa, ma meglio ma mi dà un errore di parse che non capisco!
    Studente - Smanettone - WebDesigner
    www.vigomeano.it | e altri ancora...

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.