Seite 1 von 1

Sitemap auch für unterordner erstellen

Verfasst: 16.01.2007, 18:30
von alph
Hallo leute

zurzeit benutze ich folgendes script für meine sitemap:
<!--Anfang Sitemap --><?php

echo load_dir_files(".");


function load_dir_files($path){
$dir = dir($path);
$extensions = Array(
"htm" /* (X)HTML */
);

$regex = "/^.+\.(".$extensions[0];
foreach($extensions as $ext){
$regex .= "|".$ext;
}
$regex .= ")$/i";

while($file = $dir->read()){
if(preg_match($regex,$file)){
$fp = fopen($path."/".$file,"r");
$file_read = fread($fp,1000000);

preg_match(
"/(<title>)(.*)(<\/title>)/i",
$file_read, $result);

$title = ($result[2]) ? $result[2] : "Kein Titel";
$return .= "<a href=\"".$path."/".$file."\"";
$return .= " title=\"".$title."\">";
$return .= $title."</a><br />";
fclose($fp);
}
}
$dir->close();

return $return;
}

?><!--Ende Sitemap -->
diese sitemap ist im hauptordner abgelegt, also da wo die komplette webseite liegt, die kann aber nur die seiten anzeigen, die im hauptordner liegen. Mittlerweile habe ich auch viele unterordner und unterunterordner, die auch eine menge an seiten beinhalten. meine frage nun: kann mir jemand ein script posten, der auch alle ordner und unterordner abfragt? Oder kann mir vielleicht jemand das o.g. script dementsprechend ändern und hier posten?

wäre euch echt sehr dankbar dafür!! :)

grüße
alph

Verfasst:
von

Verfasst: 18.01.2007, 15:26
von alph
hey Leuz,

ich habs schon selbst über google gefunden! :D

Falls es noch jemand braucht, hier ist das Script:
<!--Anfang Sitemap --><?php

$ext = array('htm','html');
$dateibild = 'https://www.deine-domain.de/pfeil.gif';
$ordnerbild = 'https://www.deine-domain.de/ordner.gif';

if ($dateibild) $dateibild = "<img alt=\"datei\" src=\"$dateibild\">";
if ($ordnerbild) $ordnerbild = "<img alt=\"ordner\" src=\"$ordnerbild\">";

function listedatei ($datei)
{
global $ext;
$thisext = explode ('.', $datei);
$thisext = array_pop($thisext);
if (in_array($thisext,$ext)) return TRUE;
else return FALSE;
}

# ueberprueft ob ordner zu listende Dateien enthaelt
function notempty($ordner)
{
$dir = opendir($ordner);
while ($file = readdir($dir))
{
if ($file[0]!='.')
{
if ((is_file("$ordner/$file") && listedatei("$ordner/$file")) || (is_dir("$ordner/$file") && notempty("$ordner/$file"))) return TRUE;
}
}
return FALSE;
}

# gibt datei ohne pfad aus
function showdatei ($datei)
{
$pfad=explode('/',$datei);
return array_pop($pfad);
}

# liest titel-tag aus der datei und gibt den link zurueck
function datei ($datei, $tiefe)
{
global $dateibild;
$file = file($datei);
$file = implode(' ',$file);
preg_match('/<title>(.*?)<\/title>/i', $file, $titel);
if (strlen($titel[1])>0) $link="<a href=\"$datei\">". htmlentities($titel[1]) .'</a>';
else $link="<a href=\"$datei\">". showdatei($datei) .'</a>';
return str_repeat("\t",$tiefe) ."<li class=\"datei\">$dateibild $link</li>\n";
}

# liest den ordner aus, ruft fuer jede datei die funktion 'datei' auf sowie fuer jeden ordner sich selbst.
function sitemap ($ordner, $tiefe=0)
{
global $ordnerbild;
$dir = opendir($ordner);
$luft = str_repeat("\t",$tiefe);
while ($file = readdir ($dir))
{
if ($file[0]!='.')
{
if (is_dir("$ordner/$file") && notempty("$ordner/$file")) $sitemap .= "$luft<li class=\"ordner\">$ordnerbild $file". sitemap ("$ordner/$file", $tiefe+1) ."$luft</li>\n";
elseif (listedatei ($file)) $sitemap .= datei ("$ordner/$file", $tiefe);
}
}
closedir($dir);
return "\n$luft<ul>\n$sitemap$luft</ul>\n";
}

$sitemap = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"https://www.w3.org/TR/xhtml11/DTD/xhtml ... head><meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\"/><title>Sitemap</title></head><body>". sitemap('.') .'</body></html>';
echo $sitemap;

?>
<!--Ende Sitemap -->
WICHTIG: ganz oben im Script die Grafik-URLs gegen eure eigenen austauschen ($dateibild = 'https://www.deine-domain.de/pfeil.gif';
$ordnerbild = 'https://www.deine-domain.de/ordner.gif')

Na denn viel Spass! :)

grüße
alph