• 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]


  • User Attivo

    Grazieee E' Perfettooo.

    Mio Salvatore!!!


  • ModSenior

    Prego 😉