Problem mit PHP und XML

Hallo Leute und hallo Admin,

ich weiss nicht, ob ich hier richtig bin.
Aber ich erklärs mal:
Ich will per Cronjob ein PHP-Script aufrufen, das mir eine Sitemap erstellt.
Hier mal der Code, bzw die wichtigen Teile davon:
Code:
<?php
// Script wird ausgeführt in [URL]http://www.DOMAIN.TLD/Cron/ThisScript.php[/URL]
 $ThisXmlFile = "../sitemap.xml";
// Sitemap-Intro
 $XmlSiteMapString = "";
 $XmlSiteMapString = $XmlSiteMapString . "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
 $XmlSiteMapString = $XmlSiteMapString . "<?xml-stylesheet type=\"text/xsl\" href=\"[URL]http://www.DOMAIN.TLD/Images/sitemap.xsl\"?>\n[/URL]";
 $XmlSiteMapString = $XmlSiteMapString . "<urlset xmlns:xsi=\"[URL]http://www.w3.org/2001/XMLSchema-instance\[/URL]" xsi:schemaLocation=\"[URL="http://www.sitemaps.org/schemas/sitemap/0.9"]www.sitemaps.org - /schemas/sitemap/0.9/[/URL] [URL]http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd\[/URL]" xmlns=\"[URL]http://www.sitemaps.org/schemas/sitemap/0.9\">\n[/URL]";
// erste Seiten
 $XmlSiteMapString = $XmlSiteMapString . " <url>\n  <loc>http://www.DOMAIN.TLD/</loc>\n  <lastmod>" . date("Y-m-d") . "</lastmod>\n  <changefreq>daily</changefreq>\n  <priority>1.0</priority>\n </url>\n";
 $XmlSiteMapString = $XmlSiteMapString . " <url>\n  <loc>http://www.DOMAIN.TLD/Sitemap.php</loc>\n  <lastmod>" . date("Y-m-d") . "</lastmod>\n  <changefreq>daily</changefreq>\n  <priority>0.4</priority>\n </url>\n";
  <changefreq>daily</changefreq>\n  <priority>0.8</priority>\n </url>\n";
// Unterseiten
// viel BlaBla mit Datenbank-Abfragen und haste nicht gesehen
 
 $XmlSiteMapString = $XmlSiteMapString . "</urlset>";
// Jetzt die Sitemap schreiben, aber erst die alte löschen
 unlink($ThisXmlFile);
 $NewSiteMapXml = fopen($ThisXmlFile,"w");
 fwrite($NewSiteMapXml, $XmlSiteMapString);
 fclose($NewSiteMapXml);
 
echo $XmlSiteMapString
?>
Sooooo, die sitemap.xml wird korrekt auf dem Server geschrieben mit den Berechtigungen 644. Das Echo des CronobScripts in IE8 ( [URL="http://www.DOMAIN.TLD/Cron/ThisScript.php ) zeigt"]http://www.DOMAIN.TLD/Cron/ThisScript.php ) zeigt[/URL] eine wunderbar formatierte Sitemap. Der Aufruf der geschriebenen Sitemap in IE8 (http://www.DOMAIN.TLD/sitemap,xml ) zeigt eine komplett leere Seite. Mit Firefox wird die XML korrekt angezeigt.

Hat da jemand eine Idee?

Greetz
Tom
 
Hi CDW und danke für Dein Interesse.
Gell es ist schon spannend, wie sich Mîcrosofts Browser ständig weigern, übliche Standards zu akzeptieren.

Was meinst Du mit der Minimalversion, die ich anhängen soll?
Ich habe das Script ja schon ziemlich minimalisiert. Weil es wäre noch rund 280 Zeilen länger.

Greetz
Tom
 
Alles klar, die Ausgabe lauet wie folgt ( Domain geändert ):
Code:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="[URL]http://www.DOMAIN.TLD/Images/sitemap.xsl[/URL]"?>
<urlset xmlns:xsi="[URL]http://www.w3.org/2001/XMLSchema-instance[/URL]" xsi:schemaLocation="[URL="http://www.sitemaps.org/schemas/sitemap/0.9"]www.sitemaps.org - /schemas/sitemap/0.9/[/URL] [URL]http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd[/URL]" xmlns="[URL="http://www.sitemaps.org/schemas/sitemap/0.9"]www.sitemaps.org - /schemas/sitemap/0.9/[/URL]">
 <url>
  <loc>http://www.DOMAIN.TLD/</loc>
  <lastmod>2014-02-26</lastmod>
  <changefreq>daily</changefreq>
  <priority>1.0</priority>
 </url>
 <url>
  <loc>http://www.DOMAIN.TLD/Sitemap.php</loc>
  <lastmod>2014-02-26</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.4</priority>
 </url>
</urlset>

Ich weiss nicht warum, aber plötzlich klappt auch die Ausgabe in IE8 korrekt. Du erinnerst Dich, das Schreiben des XML auf dem Server war gar kein Problem.
Ich vermute mittlerweile, ich habe mich von meinem Browser-Cache verarschen lassen.

Neu habe ich jetzt ein Problem, dass sich offensichtlich Umlaute und Sonderzeichen in der DB befinden. Diese zu korrigieren sind einfach. Das ist nicht das Problem. Mein Problem ist jetzt, in welcher schwachen Stunde habe ich ein Script geschrieben, das Umlaute und Sonderzeichen zulässt?
Welches Script ist es? Und wie finde ich das fehlerhafte Script? :-)

Ich frage mich, ob ich nicht lieber Müllfahrer werde. Da ist es wurscht, wenn man in der Vergangenheit was vergessen hat. Und man hat täglich pünktlich Feierabend und am Ende des Monats seinen Lohn.

Greetz
Tom
 
Zurück
Oben