Avatar billede weblance Nybegynder
15. juli 2010 - 15:50 Der er 9 kommentarer og
1 løsning

Vise liste over bestemte filtyper i en given mappe - hvordan?

Jeg ved at alt indhold i en mappe kan vises sådan:

<?php
$dir = "mappenavn";
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {                               
echo $file . "<br>";
}
closedir($dh);
}
}
?>

Men jeg har brug for at at kunne vise en liste over filer med en bestemt extension, for eksempel - vis kun filer i mappen med efternavnet .php - hvordan gør man det?
Avatar billede majbom Novice
15. juli 2010 - 16:33 #1
while (($file = readdir($dh)) !== false){
  if(strtolower(end(explode(".",$file)))=="php"){
      echo $file . "<br>\n";
  }
}
Avatar billede yHec Novice
15. juli 2010 - 16:35 #2
$dir = "mappenavn";
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
$ext=substr($file,-3);
if ($file<>"." && $file<>".." && $ext<>"php" && is_dir($file)) echo $file . "<br>";
}
closedir($dh);
}
}

/y
Avatar billede jakobdo Ekspert
16. juli 2010 - 09:51 #3
<?php
$dir = 'mappenavn/';
foreach (glob($dir.'*.php') as $filename){
  echo $filename. "<br />\n";
}
?>
Avatar billede jakobdo Ekspert
16. juli 2010 - 09:53 #4
Og hvis du både har php og PHP:

<?php
$dir = 'mappenavn';
foreach (glob($dir.'{*.PHP,*.php}',GLOB_BRACE) as $filename){
  echo $filename. "<br />\n";
}
?>

og flere filtyper:

<?php
$dir = 'mappenavn';
foreach (glob($dir.'{*.phps,*.php,*.phtml}',GLOB_BRACE) as $filename){
  echo $filename. "<br />\n";
}
?>
Avatar billede groyk Novice
18. juli 2010 - 21:06 #5
Kan se der er mange bud.

Har selv lavet følgende funktion til formålet


get_dir_files($dir,$ext_array="",$sub_dirs,$list="") {
        $ext_types = explode(":",$ext_array);
        $dirHandle = opendir($dir);
          while ($file = readdir($dirHandle))
              if(!is_dir($file)>0) {
                if($ext_array=="") {
                    if ($file != "." && $file != "..") if(!is_dir($dir . "/" . $file)) $list[] = $dir . "/" . $file;
                } else {
                    $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
                    if (in_array($ext, $ext_types)) $list[] = $dir . "/" . $file;
                }
                if(is_dir($dir . "/" . $file) AND $sub_dirs==TRUE) $list = get_dir_files($dir . "/" . $file,$ext_array,$sub_dirs,$list);
            }
          closedir($dirHandle);
        return $list;
    }


Den bruges således

get_dir_files("dir/dir","css:js:ect",TRUE,array)

1. Sti til mappe
2. filtyper der skal vises
3. Skal der ledes i undermapper
4. Evt. array hvor filerne skal tilføjes

Funktionen returnere et array med fundne filer
Avatar billede majbom Novice
18. juli 2010 - 21:23 #6
spørgsmålet er så bare om #0 kan bruge det...
Avatar billede groyk Novice
19. juli 2010 - 06:58 #7
Kan godt se der ikke har været meget respons.

Kan være problemet ikke har været så stort at der var grund til et spørgsmål her inde??
Avatar billede weblance Nybegynder
02. september 2010 - 16:20 #8
Jeg kan godt bruge dit svar splazz - smid et svar så du kan få point
Avatar billede majbom Novice
02. september 2010 - 16:34 #9
kommer her :)
Avatar billede majbom Novice
02. september 2010 - 18:26 #10
tfp :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester