Avatar billede Chewie Novice
08. maj 2006 - 18:09 Der er 7 kommentarer og
1 løsning

automatisk sitemap

Hej Jeg fandt dette script i et andet spg. men kan ikke få det til at virke

det er lagt i en php fil som ligger i en mapper der hedder www.blabla.dk/test/ men jeg får ike vist filerne ?

fejl #ikke fundet# er det eneste resultat jeg får

<?php
function listdir($dir, $search) {
    $mappe = @opendir($dir) or die ("ikke fundet");
    echo "<ul>".$dir;
    while($fil = readdir($mappe)) {
        if ($fil != "." && $fil != "..") {
            if (preg_match("/$search/i", $fil) && !is_dir($dir . $fil)) {
                $filer[] = $fil;
            }
        }
    }
    if (count($filer) != 0) {
        sort($filer);
        foreach ($filer as $fil) {
            echo "<li>$fil</li>";
        }
    }
    closedir($mappe);
    $mappe = @opendir($dir) or die ("ikke fundet");
    while($fil = readdir($mappe)) {
        if ($fil != "." && $fil != "..") {
            if (is_dir($dir . $fil)) {
                listdir($dir .$fil ."/", $search);
            }
        }
    }
    echo "</ul>";
}

$search = "";
$bunddir = "test/";
listdir($bunddir, $search);
?>
Avatar billede hmortensen Nybegynder
08. maj 2006 - 18:11 #1
Hvis scriptet ligger i undermappen "test", skal $bunddir være "./"
Avatar billede Chewie Novice
08. maj 2006 - 18:19 #2
det virkede men scriptet viser efternavnet på filerne f.eks. (.php) ved du om det er muligt at fjerne det ?
Avatar billede Chewie Novice
08. maj 2006 - 18:20 #3
(smid også lige et svar) :o)
Avatar billede Chewie Novice
08. maj 2006 - 19:42 #4
fik lidt hjælp fra anden side og den endelige kode kom til at se sådan ud

<?php
function listdir($dir, $search) {
  $mappe = @opendir($dir) or die ("ikke fundet");
  echo $dir;
  while($fil = readdir($mappe)) {
      if ($fil != "." && $fil != "..") {
          if (preg_match("/$search/i", $fil) && !is_dir($dir . $fil)) {
              $filer[] = $fil;
          }
      }
  }
  if (count($filer) != 0) {
      sort($filer);
      foreach ($filer as $fil) {
          $niceFil = substr($fil, 0, (strlen($fil) - 4) );
          echo "<a href=\"$fil\">$niceFil</a>&nbsp;&nbsp;";
      }
  }
  closedir($mappe);
  $mappe = @opendir($dir) or die ("ikke fundet");
  while($fil = readdir($mappe)) {
      if ($fil != "." && $fil != "..") {
          if (is_dir($dir . $fil)) {
              listdir($dir .$fil ."/", $search);
          }
      }
  }
}

$search = "";
$bunddir = "./";
listdir($bunddir, $search);
?>
Avatar billede hmortensen Nybegynder
09. maj 2006 - 08:33 #5
Nu vil det kun virke hvis extensionen er på 3 tegn. Skal der tages højde for x antal tegn?
Avatar billede Chewie Novice
09. maj 2006 - 08:36 #6
Det er fint til mig som det er nu - man du kan jo vise hvordan det vil se ud med x tegn til andre der finder dette spg.

god dag
Avatar billede Chewie Novice
09. maj 2006 - 09:16 #7
linien "echo $dir;" bør dog fjernes :)
Avatar billede hmortensen Nybegynder
09. maj 2006 - 09:59 #8
En mulighed kunne være:
$pos = strrpos($file, ".");
if ($pos !== false)
  $file = substr($file, 0, $pos);
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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