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

    Problema con lo sfogliare le directory

    Ciao a tutti, ho un problema con lo sfogliare le directory. L' obbiettivo che vorrei raggiungere è quello di sfogliare una cartella, visualizzare il contenuto che, se è una cartella viene creato un link alla stessa pagina con una variabile GET, se invece si tratta di un file il link punterà allo stesso. Se la directory da sfogliare è "./" quindi la stessa del file php funziona perfettamente, se invece ne specifico un' altra ad esempio "../altracartella", gli elementi trovati li vede tutti come file e mi crea il link al file e non alla pagina e quinti senza la variabile GET.

    Codice PHP:
    $Directory "./";    
    if (
    is_dir($Directory)) 
    {   
       
    //Apro l'oggetto directory   
       
    if ($directory_handle opendir($Directory))    
       {    
         
    //Scorro l'oggetto fino a quando non è terminato cioè false    
         
    while (($file readdir($directory_handle)) !== false)     
         {     
           
    //se è una cartella     
           
    if((is_dir($file))&($file!=".")&($file!=".."))     
           {      
             echo 
    "<a href='?sd=".$file."'>".$file "</a><br/>";           
           }     
           
    //se è un file     
           
    elseif ((!is_dir($file))&($file!=".")&($file!=".."))     
           {      
              echo 
    "<a href='".$Directory.$file."'>" .$file "</a><br/>";     
           }    
         }   
       }              
    //Chiudo la lettura della directory.
    closedir($directory_handle);

    Offro una birretta a chi mi aiuta
    Ultima modifica di camionistaxcaso; 24-12-2014 a 12:28

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Il problema è che readdir ti ritorna SOLO il nome del file. Di conseguenza is_dir non trova il file, in quanto non specifichi la directory (prende quella corrente, per questo funziona con ./ ).
    Dovresti mettere
    is_dir($Directory.$file)

    Ps: attento se manca il directory separator tra $Directory e $file

  3. #3
    Grazie boots, così funge
    Il directory separator va in base al file system?
    Te lo chiedo perchè io adesso sto lavorando su windows, ma l' applicazione ufficiale gira su Linux

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Che io sappia, a windows va bene anche lo / come directory separator. Se vuoi esser sicuro puoi usare la costante DIRECTORY_SEPARATOR, che viene definita in base al SO

  5. #5
    Quote Originariamente inviata da boots Visualizza il messaggio
    Che io sappia, a windows va bene anche lo / come directory separator. Se vuoi esser sicuro puoi usare la costante DIRECTORY_SEPARATOR, che viene definita in base al SO
    Paura

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.