sitemap.php 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #!/usr/bin/php
  2. <?php
  3. // Parameter prüfen
  4. if (!isset($argc))
  5. die("Bitte von der Kommandozeile ausführen.\n");
  6. if ($argc < 3 || empty($argv[1]) || empty($argv[2]))
  7. die("Parameter: ".$argv[0]." [Verzeichnis] [Domain] {Endungen} {Ausschluss-RegEx}\n");
  8. // Domain
  9. $domain = $argv[2];
  10. if (substr($domain,-1) != "/") $domain .= "/";
  11. // Endungen
  12. if (isset($argv[3])) {
  13. $endings = preg_replace("/[^0-9a-z,|]/", "", strtolower($argv[3]));
  14. } else $endings = "";
  15. if ($endings == "") $endings = "htm,html,php,php3,php5,xml,HTM,HTML,PHP,PHP3,PHP5,XML";
  16. // Verzeichnis aufsuchen
  17. $dir = $argv[1];
  18. if (($dh = @opendir($dir)) === false) die("Kann das angegebene Verzeichnis ".$dir." nicht öffnen.\n");
  19. // XML bauen
  20. echo '<?xml version="1.0" encoding="UTF-8"?>
  21. <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
  22. ';
  23. while (($file = readdir($dh)) !== false) {
  24. if (filetype($dir."/".$file) == "file") {
  25. if (preg_match('/.+\.('.str_replace(",","|",$endings).')$/i',$file) && (!isset($argv[4]) || empty($argv[4]) || !preg_match($argv[4],$file))) {
  26. $ctime = date("c", filectime($dir."/".$file));
  27. echo ' <url>'."\n".' <loc>'.$domain.$file.'</loc>'."\n".' <lastmod>'.$ctime.'</lastmod>'."\n".' </url>'."\n";
  28. }
  29. }
  30. }
  31. echo '</urlset>
  32. ';
  33. ?>