Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    226

    visualizzazione "esplora risorse" in pagina php

    ho la necessità di creare un menu ad albero "particolare", cioè mi spiego meglio:

    ho sul mio C: una cartella chiamata "comuni", all'interno di questa ci sono vari file e altre cartelle, all'interno di queste ultime altri file e altre cartelle...

    posso visualizzare questo in una pagina php come menu ad albero?

    vorrei visualizzare nella pagina php un menu ad albero identico e collegato con quello su "esplora risorse"...come?

    n.b. le cartelle e i file di cui sopra, possono aumentare o diminuire, quindi deve essere una cosa automatica...

    aiuto...come fare?

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    beh per prima cosa ti serve una funzione per leggere ricorsivamente tutte le cartelle e file al suo interno...
    Codice PHP:
    <?php
    function list_elements($dir,$out
      {
      
    $file_list '';
      
    $stack[] = $dir;
      while (
    $stack
        {
        
    $current_dir array_pop($stack);
        if (
    $dh opendir($current_dir)) 
          {
          while ((
    $file readdir($dh)) !== false
            {
            if (
    $file !== '.' AND $file !== '..'
              {
              
    $current_file "{$current_dir}/{$file}";
              if (
    is_file($current_file)) 
                {
                
    $file_list[] = "{$current_dir}/{$file}";
                } 
              elseif (
    is_dir($current_file)) 
                {
                
    $stack[] = $current_file;
                
    $dirs[]=$current_file//l' array delle directory
              //echo $current_file." corrisponde ad una directory
    ";    // questa
                }
              }
            }
          }
        }
      if (
    $out=='file')
        return 
    $file_list;
      if (
    $out=='dir')
        {
        //
    $dirs=array_reverse($dirs);
        return 
    $dirs;
        }
      }

    $dirs=list_elements("cartella di root",'dir');
    $files=list_elements("cartella di root",'file');

    echo "
    <pre>";
    print_r(
    $dirs);
    print_r(
    $files);

    ?>
    questa è sicuramente una buona base su cui iniziare poi per l' ordinamento magari vedi di metterci le mani te all' interno della funzione
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    226
    ti ringrazio
    ora provo e ti faccio sapere

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    226
    scusami mi da qst errore perchè?


    Warning: opendir(cartella di root) [function.opendir]: failed to open dir: No error in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\sito\Modulistica.php on line 85

    Warning: opendir(cartella di root) [function.opendir]: failed to open dir: No error in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\sito\Modulistica.php on line 85


  5. #5
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Originariamente inviato da infodec
    scusami mi da qst errore perchè?


    Warning: opendir(cartella di root) [function.opendir]: failed to open dir: No error in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\sito\Modulistica.php on line 85

    Warning: opendir(cartella di root) [function.opendir]: failed to open dir: No error in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\sito\Modulistica.php on line 85

    io direi di cambiare "cartella di root" con la cartella che devi processare

    in pratica

    Codice PHP:
    <?php
    function list_elements($dir,$out)
      {
      
    $file_list '';
      
    $stack[] = $dir;
      while (
    $stack)
        {
        
    $current_dir array_pop($stack);
        if (
    $dh opendir($current_dir))
          {
          while ((
    $file readdir($dh)) !== false)
            {
            if (
    $file !== '.' AND $file !== '..')
              {
              
    $current_file "{$current_dir}/{$file}";
              if (
    is_file($current_file))
                {
                
    $file_list[] = "{$current_dir}/{$file}";
                }
              elseif (
    is_dir($current_file))
                {
                
    $stack[] = $current_file;
                
    $dirs[]=$current_file//l' array delle directory
              //echo $current_file." corrisponde ad una directory
    ";    // questa
                }
              }
            }
          }
        }
      if (
    $out=='file')
        return 
    $file_list;
      if (
    $out=='dir')
        {
        //
    $dirs=array_reverse($dirs);
        return 
    $dirs;
        }
      }


    $dirs=list_elements("C:\Programmi\Apache\Apache2.2\htdocs\sito\allegati",'dir');  // QUI gli dici che cartella vuoi leggere e ti restiuisce le directory
    $files=list_elements("C:\Programmi\Apache\Apache2.2\htdocs\sito\allegati",'file'); // QUI gli dici che cartella vuoi leggere e ti restiuisce i files

    echo "
    <pre>";
    print_r(
    $dirs);
    print_r(
    $files);

    ?>
    non credevo ci fosse bisogno di specificarlo... :master:
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    226
    ti ringrazio

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    226
    funziona grazie

    solo ti chiedo un'ultima cosa
    come posso non far uscire scritto così:

    "
    Array
    (
    [0] => C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\sito\allegati/Nuova cartella
    [1] => C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\sito\allegati/Nuova cartella/Nuova cartella
    )
    Array
    (
    [0] => C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\sito\allegati/Certificato RINA.pdf
    [1] => C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\sito\allegati/Nuovo Documento di testo.txt
    [2] => C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\sito\allegati/Nuova cartella/Nuovo Documento di testo.txt
    [3] => C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\sito\allegati/Nuova cartella/Nuova cartella/Nuovo Documento di testo.txt
    )

    "

    praticamente non voglio che mi esca tutto il percorso ma solo il contenuto della cartella principale "ALLEGATI"......e poi a mo di menu ad albero i contenuti di altre cartelle...

    tipo come esplora risorse (anche graficamente )

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    226
    visto che allinterno della cartella principale "allegati" dovrei avere tante cartelle "comuni" e all'interno i file dei rispettivi, volevo una visualizzazione migliore.

    poi l'altro problema sarebbe che tutti i file dovrebbero essere "CLICCABILI" e quindi ci deve essere la possibilità di aprire i file al click del mouse

    come?

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    226
    aiuto...

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    226
    per favore aiutatemi....è una cosa che non ho mai fatto ed è anche molto complicata, praticamente vi rispiego il tutto:

    ho su C: una cartella "ALLEGATI", all'interno di questa ci sono varie cartelle e vari file, all'interno di queste ultime cartelle ci sono altre cartelle ed altri file, e così via...

    avrei la necessità di visualizzare a video tale "struttura ad albero"...

    il tutto deve funzionare come un vero e proprio "esplora risorse", quindi ci si deve cliccare sulle cartelle e si devono aprire, e si deve poter cliccare sui file e si devono aprire (i file sono pdf)

    come fare tutto questo???????? VVoVe: :berto:

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.