Sitemap
Andavos
- php
0 Tom
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
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
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
Hi,
Probier mal diesen Link, da kannste gleich alles indexieren: http://www.dclp-faq.de/q/q-code-verzeichnis.html
MfG Jakob