• ModSenior

    [php]
    <?
    $c = (isset($_GET['c'])) ? $_GET['c'] : '';

    // Nome della cartella
    $car = '../file_corsi/'.$c.'/';

    function GetFile($car)
    {
    global $c;
    // Se non è un cartella esco
    if(!is_dir($car))
    return 0;

    // Opendir è la funzione per aprire la cartella
    $handle = opendir($car);

    // Ciclo la cartella
    while (false !== ($files = readdir($handle)))
    {
    // Stampo i file
    if ($files != '.' && $files != '..')
    {
    if(is_dir($car.$files))
    $vc[] = $files;
    else
    $vf[] = $files;
    }

    }
    // Stampa dei file
    echo 'Catelle:<br>';
    for($i=0; $i<count($vc); $i++)
    echo '<a href="1.php?c='.$c.'/'.$vc*.'">'.$vc*.'</a><br>';
    echo 'File:<br>';
    for($i=0; $i<count($vc); $i++)
    echo $vf*.'<br>';
    }

    // Richiamo La funzione
    GetFile($car);
    ?>
    [/php]
    Si basa su questo tutorial Mostrare il contenuto di una cartella


  • User Attivo

    grazie, sei stato gentilissimo, ma con il tuo script si ottiene lo stesso risultato che ho ottenuto io con il mio script, ti fa vedere i file nella root principale e le directory, ma non i file che si trovano all'interno di quelle directory.


  • ModSenior

    Le cartelle hanno il collegamento... se ci clicchi vedi il contenuto 😄


  • User Attivo

    si lo so, il problema è che se clicco mi apre una nuova pagina con scritto:

    Not Found

    The requested URL /proxima/1.php was not found on this server.


  • ModSenior

    sostituisci in <a href="1.php"> 1.php con il nome del tuo file


  • User Attivo

    e se ci sono più file in quella directory?


  • User Attivo

    quello che avrei voluto fare era questo:

    auto/mercedes.jpg
    auto/renault.gif

    moto/honda.doc
    moto/scooter/sh.xls
    moto/yamaha.zip

    aeroplano.doc
    elicottero.pdf


  • ModSenior

    CIoè vuoi visualizzarli tutti in una pagina? mmm

    è bello lungo come procedimento per il server...


  • User Attivo

    ma non esistono script già pronti, cosa devo cercare su internet?


  • ModSenior

    Già fatti non ne conosco...


  • User Attivo

    era per non disturbarti 🙂 però se invece ti va di aiutarmi, allora lo posso compilare con il tuo aiuto, però io di php non sono bravissimo, me la cavo un pò, ma questa cosa non riesco a farla 😞


  • ModSenior

    Mi sto confondendo con gli array ❌x:x


  • User Attivo

    ho trovato questo codice che funziona, solo che non mi mette i link ai file:

    [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<br>"; // questa
    }
    }
    }
    }
    }
    if ($out=='file')
    return $file_list;
    if ($out=='dir')
    {
    //$dirs=array_reverse($dirs);
    return $dirs;
    }
    }

    $dirs=list_elements("../file_corsi",'dir'); // QUI gli dici che cartella vuoi leggere e ti restiuisce le directory
    $files=list_elements("../file_corsi",'file'); // QUI gli dici che cartella vuoi leggere e ti restiuisce i files

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

    ?>
    [/PHP]


  • ModSenior

    [php]
    <?
    // Nome della cartella
    $car = 'cartella/';

    function GetFile($car)
    {
    // Se non è un cartella esco
    if(!is_dir($car))
    return 0;

    // Opendir è la funzione per aprire la cartella
    $handle = opendir($car);

    // Ciclo la cartella
    while (false !== ($files = readdir($handle)))
    {
    // Stampo i file
    if ($files != '.' && $files != '..')
    {
    if(is_dir($car.$files))
    GetFile2($car.$files, &$vf);
    else
    $vf[] = $files;
    }

    }
    echo 'File:<br>';
    for($i=0; $i<count($vf); $i++)
    echo $vf*.'<br>';
    }

    // Richiamo La funzione
    GetFile($car);

    function GetFile2($dir, $vf)
    {
    $files1 = scandir($dir);
    for($i=0; $i<count($files1); $i++)
    if($files1* != '.' && $files1* != '..')
    $vf[] = $files1*;
    }
    ?>
    [/php]
    Unico problema riesce a prendere solo le immagini della prima sottocartella se ci sono cartelle nelle sottocartelle non prende i contenuti...


  • User Attivo

    ho provato il tuo script ma mi da questo errore:

    Fatal error: Call to undefined function: scandir() in /web/htdocs/vuvuvu.sito.it/home/corsi/file_corso_base.php on line 58


  • ModSenior

    $car = 'cartella/';

    lo hai modificato?

    EDIT manca la funzione usi php 4 perciò aspetta che ne faccio uno che funziona


  • ModSenior

    [php]
    <?
    // Nome della cartella
    $car = 'cartella/';

    function GetFile($car)
    {
    // Se non è un cartella esco
    if(!is_dir($car))
    return 0;

    // Opendir è la funzione per aprire la cartella
    $handle = opendir($car);

    // Ciclo la cartella
    while (false !== ($files = readdir($handle)))
    {
    // Stampo i file
    if ($files != '.' && $files != '..')
    {
    if(is_dir($car.$files))
    GetFile2($car.$files, &$vf);
    else
    $vf[] = $files;
    }

    }
    echo 'File:<br>';
    for($i=0; $i<count($vf); $i++)
    echo $vf*.'<br>';
    }

    // Richiamo La funzione
    GetFile($car);

    function GetFile2($dir, $vf)
    {
    // Opendir è la funzione per aprire la cartella
    $handle = opendir($dir);

    // Ciclo la cartella
    while (false !== ($files = readdir($handle)))
    if($files != '.' && $files != '..')
    $vf[] = $files;
    }
    ?>
    [/php]


  • ModSenior

    Ho fatto una modifica ora dovrebbe fuznionare in tutte le sottocartelle

    [php]
    <?
    // Nome della cartella
    $car = 'cartella/';

    function GetFile($car)
    {
    // Se non è un cartella esco
    if(!is_dir($car))
    return 0;

    // Opendir è la funzione per aprire la cartella
    $handle = opendir($car);

    // Ciclo la cartella
    while (false !== ($files = readdir($handle)))
    {
    // Stampo i file
    if ($files != '.' && $files != '..')
    {
    if(is_dir($car.$files))
    GetFile2($car.$files, &$vf);
    else
    $vf[] = $files;
    }

    }
    echo 'File:<br>';
    for($i=0; $i<count($vf); $i++)
    echo $vf*.'<br>';
    }

    // Richiamo La funzione
    GetFile($car);

    function GetFile2($dir, $vf)
    {
    // Opendir è la funzione per aprire la cartella
    $handle = opendir($dir);

    // Ciclo la cartella
    while (false !== ($files = readdir($handle)))
    if($files != '.' && $files != '..')
    if(is_dir($dir.'/'.$files))
    GetFile2($dir.'/'.$files, &$vf);
    else
    $vf[] = $files;
    }
    ?>

    Vedi se finalmente ci siamo 😄
    [/php]


  • User Attivo

    grazie funziona però i nomi dei file non hanno il link


  • ModSenior

    [php]
    <?
    // Nome della cartella
    $car = 'cartella/';

    function GetFile($car)
    {
    // Se non è un cartella esco
    if(!is_dir($car))
    return 0;

    // Opendir è la funzione per aprire la cartella
    $handle = opendir($car);

    // Ciclo la cartella
    while (false !== ($files = readdir($handle)))
    {
    // Stampo i file
    if ($files != '.' && $files != '..')
    {
    if(is_dir($car.$files))
    GetFile2($car.$files, &$vf);
    else
    $vf[] = '<a href="'.$files.'">'.$files.'</a>';
    }

    }
    echo 'File:<br>';
    for($i=0; $i<count($vf); $i++)
    echo $vf*.'<br>';
    }

    // Richiamo La funzione
    GetFile($car);

    function GetFile2($dir, $vf)
    {
    // Opendir è la funzione per aprire la cartella
    $handle = opendir($dir);

    // Ciclo la cartella
    while (false !== ($files = readdir($handle)))
    if($files != '.' && $files != '..')
    if(is_dir($dir.'/'.$files))
    GetFile2($dir.'/'.$files, &$vf);
    else
    $vf[] = '<a href="'.$dir.'/'.$files.'">'.$dir.'/'.$files.'</a>';
    }
    ?>
    [/php]