Andavos: Sitemap

Hallo,
ich habe mit folgendem Code eine Sitemap gemacht.
<?php
$verzeichnis = dir(".");
$endung = ".php";
while($datei = $verzeichnis->read()) {
  if(substr($datei,strlen($endung)*(-1)) == $endung) {
    echo "<A HREF="$datei">";
    $fp = fopen($datei,"r");
    while (!feof($fp)) {
      $linie = fgets($fp, 1024);
      if(eregi("<title>(.*)</title>", $linie, $title))
      break;
    }
    $title = $title[1];

if($title != "")
    {
    echo "$title<BR><BR></a>";
    }
    fclose($fp);
  }
}
$verzeichnis->close();
?>

Damit liest er die Datei aus dem Ordner aus, in der die Datei gespeichert ist.

Aber wie kann ich einen Unterordner auslesen?

Wenn ich
$verzeichnis = dir("ordner");

mache, erhalte ich in fehler in folgenden Zeilen:
$fp = fopen($datei,"r");   //8
while (!feof($fp)) {       //9
$linie = fgets($fp, 1024); //10

Warning: fopen(test.php): failed to open stream: No such file or directory in C:\apache\htdocs\test\sitemap.php on line 8

Warning: feof(): supplied argument is not a valid stream resource in C:\apache\htdocs\test\sitemap.php on line 9

Warning: fgets(): supplied argument is not a valid stream resource in C:\apache\htdocs\test\sitemap.php on line 10

Wie muss die  Zeile (dir...) richtig aussehen, damit der Script geht?

MFG
Andavos

--
http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
  1. Hello,

    Das macht man dann am Besten rekursiv.

    Ich hatte da in meinem Grippekopf vorgestern eine Funktion gebastelt. Musst mal damit spielen.

    function get_tree($dir)
    {
      $dirlist=array();

    $dh=@opendir($dir);
      if ($dh)
      {
        while ($filename=readdir($dh))
        {
          if (is_dir($dir."/".$filename) and ($filename !=".") and ($filename !=".."))
          {
            $dirlist[$filename]= get_tree($dir."/".$filename);
          }
          elseif(is_file($dir."/".$filename))
          {
            $dirlist["."][$filename] = filesize($dir."/".$filename);
          }
        }
        closedir($dh);
      }
      else
      {
        // ggf. Fehlermeldung setzen
        return false;
      }

    asort($dirlist);
      return $dirlist;
    }

    $tree = get_tree("..");

    echo "<pre>";
    print_r($tree);
    echo "</pre>";

    Es wird aber besser sein, nur erst die Direcrorys in ein Array von Strings einzulesen, also auf einer Ebene, und dann aus diesen Directories in einem zweiten Durchgang die Seiten zu ziehen. Hast Du immer eine Seite (index.html oder so) pro Subdirectory?

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    1. Hallo,
      ne, da gibts nicht immer eine index,html pro Subdir.

      Aber kann man den anderen Script nicht so anpassen, das er einen bestimmten unterordner liest?

      MFG
      Andavos

      --
      http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
      1. Hi,

        Probier mal diesen Link, da kannste gleich alles indexieren: http://www.dclp-faq.de/q/q-code-verzeichnis.html
        MfG Jakob

        --
        Makaken müssen auch ma ka(c)ken!
        mehr oder weniger fertig: <http://www.aquariensite.de
        mehr oder weniger belebt: [link:http://forum.aquariensite.de>