Hallo,
also irgendwie scheitere ich grad auch daran per PHP die XML Datei entgegenzunehmen und zum auslesen über den httpRequest bereitzustellen. Ich verstehs nich. Vielleicht diesmal irgendein Codierungsfehler?
http.open("POST", "load_feed.php", true);
http.setRequestHeader("Content-Type", "text/xml");
Du schickst hier kein text/xml an den Server, sondern application/x-www-form-urlencoded.
http.send("url=http://www.zdf.de/ZDFmediathek/rss/4/0,4149,2351716,00.xml");
http.onreadystatechange = post_news;
Wieso eigentlich ein POST-Request? Du willst nicht Daten zum Server senden (naja), sondern Daten abfragen anhand des Parameters url.
Gut, dafür nimmst du einen einfachen GET-Request mit dem Query-String ?url=...
Und die load_feed.php:
$fp = join ('', file($_POST['url']));
echo $fp;
Ein PHP-Script sendet standardmäßig den Header Content-Type: text/html.
Du holst aber eine RSS-Datei von einem fremden Server und gibst sie dann im PHP-Script aus und damit an den Browser weiter.
Der sollte das RSS aber nicht als text/html bekommen, sondern z.B. als application/xml. Mit header() kannst du PHP dazu bringen, den entsprechenden Header Content-Type: application/xml zu senden.
Die Kodierungsfrage ist eine ganz andere.
Wenn du eine Ressource von einem anderen Server mittels file() einliest, dann weißt du nicht, welche Kodierung der ZDF-Server mit seiner Antwort gesendet hat. Du bist also darauf angewiesen, dass in der RSS-Datei eine Kodierungsangabe in Form einer XML-Deklaration drinsteht. Das ist beim ZDF-Feed der Fall, also wird der Browser damit klarkommen, aber andere Feeds enthalten gerne keine oder auch falsche Kodierungsangaben.
Mathias