• Moderatore

    Elencare tutti i file presenti in una cartella

    Ciao a tutti
    ho trovato questo script (che funziona) per elencare tutte le foto che ho in una cartella. Il file si trova nella stessa cartella delle immagini.

    function elencafiles($dirname,$arrayext){
        $arrayfiles=Array();
        if(file_exists($dirname)){
            $handle = opendir($dirname);
            while (false !== ($file = readdir($handle))) { 
                if(is_file($dirname.$file)){
                    $ext = strtolower(substr($file, strrpos($file, "."), strlen($file)-strrpos($file, ".")));
                    if(in_array($ext,$arrayext)){
                        array_push($arrayfiles,$file);
                    }
                }
            }
            $handle = closedir($handle);
        }
        sort($arrayfiles);
        return $arrayfiles;
    }
    
    $array_extimg=array('.jpg','.jpeg','.JPG');
    $arrayfile=array();
    $arrayfile=elencafiles("**qui va il nome della cartella**(es "cartella/")",$array_extimg);
    
    foreach ($arrayfile as $m) {
    echo '<a href="'.$m.'" rel="lightbox[group]"><img src="'.$m.'" alt=""></a>';
    }
    

    Il problema è che il file si trova nella stessa cartella. Come faccio ad indicare stessa cartella in cui è il file invece di un normale nome?

    Grazie


  • Moderatore

    L' ho risolto usando la funzione getcwd()

    Vi lascio il codice

    
    $stringa= getcwd(); 
    $stringa= '**'.$stringa.'/**'; 
    $stringa2= str_replace ("/home/public_html/","",$stringa); 
    $arrayfile=elencafiles(**$stringa**,$array_extimg);
    
    foreach ($arrayfile as $m) {
    echo '<a href="'.$urlsito.''.$stringa2.''.$m.'" rel="lightbox[group]"><img src="'.$urlsito.''.$stringa2.''.$m.'" alt=""></a>';
    }
    
    

  • User Attivo

    Perchè non usi un più semplice h t t p : //it.php.net/glob ?


  • Moderatore

    Sì è esattamente quello che volevo, mi risparmia l' uso della funzione
    Se volessi inserire più di un formato possibile?
    Ora il codice semplice che uso è:
    [PHP]foreach ( glob("*.jpg") as $m) {
    echo '<img src="'.$urlsito.''.$tutti[$id]['nomeurl'].'/'.$m.'" alt="">';
    }[/PHP]

    Se volessi inserire anche i file .jpeg e .JPG come faccio?