PHP5 und XML, Umlautproblem |
Willkommen, Gast ( Anmelden | Registrierung )
PHP5 und XML, Umlautproblem |
16.03.2005 - 12:05
Beitrag
#1
|
|
____________________ Gruppe: Admin Beiträge: 1.220 Mitglied seit: 20.10.2001 Mitglieds-Nr.: 3 |
Hi,
ich mache gerade ein paar "Fingerübungen", weil ich für meine Seite die Erstellung von Übersichten und Listen automatisieren möchte. Dazu will ich per PHP5 eine XML Datei auslesen. Das ist ja angenehmerweise recht einfach => Demoseite Die XML-Datei findet sich unter http://www.andreas-edler.de/netz_html/filmfacts.xml Der Code sieht folgendermaßen aus: HTML <?php if (file_exists('filmfacts.xml')) { $xml = simplexml_load_file('filmfacts.xml'); // var_dump($xml); } else { exit('Kann filmfacts.xml nicht oeffnen.'); } $x=0; foreach ($xml->kritiken as $movie) { foreach ($movie->kritik as $film) { $x++; echo 'Nr. '.$x.' = '.$film->titel, ' = '; echo $film->wertung, '<br />'; } } ?> Leider werden dabei die Umlaute völlig zerschossen ausgegeben :-/ Wenn ich in der XML Datei die Umschreibungen nutze, meckert das Script über nicht definierte Entities ... :-o Andreas |
|
|
16.03.2005 - 12:16
Beitrag
#2
|
|
DELETE FROM users WHERE search_count < 1 Gruppe: Admin Beiträge: 314 Mitglied seit: 15.07.1976 Wohnort: Osnabrück Mitglieds-Nr.: 2 |
moin!
Wenn du die Zeichenkodierung im Browser auf UTF-8 umstellst wird alles gut... have fun! Lars PS: Gut, wie du das in Header Informationen bekommst weisst du denke ich.... |
|
|
16.03.2005 - 13:11
Beitrag
#3
|
|
Weiss zuviel!! Gruppe: Mods Beiträge: 668 Mitglied seit: 19.04.2002 Wohnort: Grimmen Mitglieds-Nr.: 385 |
|
|
|
16.03.2005 - 13:14
Beitrag
#4
|
|
DELETE FROM users WHERE search_count < 1 Gruppe: Admin Beiträge: 314 Mitglied seit: 15.07.1976 Wohnort: Osnabrück Mitglieds-Nr.: 2 |
ZITAT(i.b.g @ 16.03.2005 - 13:11) moin! War ein Schnellschuss, hatte nur das probiert... Hatte ein ähnliches Problem bei nem CMS, was ich geschrieben hab. Deutsch/Englisch/Japanisch... Da ging ich gleich auf UTF-8 und alles war schön... have fun! Lars |
|
|
16.03.2005 - 13:20
Beitrag
#5
|
|
____________________ Gruppe: Admin Beiträge: 1.220 Mitglied seit: 20.10.2001 Mitglieds-Nr.: 3 |
Yo, richtig verpackt ist das noch nicht Ich dachte der IE mit seiner Fehlertoleranz würde das auch so anzeigen. <bastelbastel> Mit kompletten Headerangaben rundherum - sei es ISO oder UTF-8 - sieht das Ergebnis allerdings nicht anders aus :-(
*Wo* sollte ich das denn einstellen? Andreas - gerade nicht vom Schlauch kommend |
|
|
16.03.2005 - 13:26
Beitrag
#6
|
|
DELETE FROM users WHERE search_count < 1 Gruppe: Admin Beiträge: 314 Mitglied seit: 15.07.1976 Wohnort: Osnabrück Mitglieds-Nr.: 2 |
moin!
ZITAT(Andreas @ 16.03.2005 - 13:20) Yo, richtig verpackt ist das noch nicht Ich dachte der IE mit seiner Fehlertoleranz würde das auch so anzeigen. <bastelbastel> Mit kompletten Headerangaben rundherum - sei es ISO oder UTF-8 - sieht das Ergebnis allerdings nicht anders aus :-( *Wo* sollte ich das denn einstellen? Andreas - gerade nicht vom Schlauch kommend Öhm, also der Quelltext sieht bei mir immer noch gleich aus.... Umschalten im IE: Ansicht->Codierung->Unicode und die Header Klamotte mein ich: QUELLTEXT <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hilft das beim 'vom Schlauch runterkommen'? Ansonsten muss jemand anderes schubsen... have fun! Lars |
|
|
16.03.2005 - 13:34
Beitrag
#7
|
|
____________________ Gruppe: Admin Beiträge: 1.220 Mitglied seit: 20.10.2001 Mitglieds-Nr.: 3 |
Ja, so habe ich's ja auch gemacht *g* Nur nicht hochgeladen ... ich kann ja auch lokal testen Habe hier nur "WebFTP" ... macht nicht soviel Spaß.
Sehr putzig das. Wenn ich bei der Version ohne Header im Browser auf UTF-8 stelle, funktioniert es. Wenn ich im Header UTF-8 mitgebe geht's nicht - auch nicht, wenn ich die Codierung im Browser selbst weiterhin auf UTF-8 stehen habe. Verwirrt. Ich will aber nicht "ae" "ue" und so verwenden ... Oder muß ich das in der XML Datei einstellen? Hm ... |
|
|
16.03.2005 - 14:22
Beitrag
#8
|
|
DELETE FROM users WHERE search_count < 1 Gruppe: Admin Beiträge: 314 Mitglied seit: 15.07.1976 Wohnort: Osnabrück Mitglieds-Nr.: 2 |
moin!
ZITAT(Andreas @ 16.03.2005 - 13:34) Ja, so habe ich's ja auch gemacht *g* Nur nicht hochgeladen ... ich kann ja auch lokal testen Habe hier nur "WebFTP" ... macht nicht soviel Spaß. Sehr putzig das. Wenn ich bei der Version ohne Header im Browser auf UTF-8 stelle, funktioniert es. Wenn ich im Header UTF-8 mitgebe geht's nicht - auch nicht, wenn ich die Codierung im Browser selbst weiterhin auf UTF-8 stehen habe. Verwirrt. Ich will aber nicht "ae" "ue" und so verwenden ... Oder muß ich das in der XML Datei einstellen? Hm ... Mhm... ich würde es später nochmal 'online' probieren... Es macht manchmal tatsächlich für nen Browser einen Unterschied (was ich auch erfahren durfte). Webserver spielen zum Teil auch mit den Encodings rum... *schulterzuck* Ansonsten hast du doch in deiner XML Datei das Encoding schon passig gesetzt... *wunder* Wenn alle Stricke reissen kannst du ja mit Gewalt zu Werke gehen QUELLTEXT $string = str_replace('ä','ä',$string); *grummel* So auf die ganz blöde Tour halt.... have fun! Lars |
|
|
16.03.2005 - 15:25
Beitrag
#9
|
|
Weiss zuviel!! Gruppe: Mods Beiträge: 668 Mitglied seit: 19.04.2002 Wohnort: Grimmen Mitglieds-Nr.: 385 |
Hallo,
also eigentlich wird das im Header der XML-Datei angegeben. QUELLTEXT <?xml version="1.0" encoding="ISO-8859-1"?> Und dann sollte der Browser oder das jeweilige Anwenderprogramm wissen, was damit anzufangen.
|
|
|
18.03.2005 - 10:27
Beitrag
#10
|
|
____________________ Gruppe: Admin Beiträge: 1.220 Mitglied seit: 20.10.2001 Mitglieds-Nr.: 3 |
Es scheint so, dass das mit den Umlauten tatsächlich nicht mit den Headern in den Griff zu bekommen ist. Nach ein bißchen googlen habe ich jetzt folgende funktionierende Lösung:
HTML <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>XML Test</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <?php if (file_exists('filmfacts.xml')) { $xml = simplexml_load_file('filmfacts.xml'); } else { exit('Failed to open filmfacts.xml.'); } $x=0; foreach ($xml->kritiken as $movie) { foreach ($movie->kritik as $film) { $x++; $liste[$x][titel]=utf8_decode($film->titel); $liste[$x][wertung]=utf8_decode($film->wertung); echo 'Nr. '.$x.' = '.$liste[$x][titel].' = '; echo $liste[$x][wertung].'<br />'; } } ?> </body> </html> Grüße Andreas [Nachtrag]: Bißchen erweitert: http://filmfacts.drfm.de/netz_html/index.php Nun kann ich anfangen zu basteln ... |
|
|
Google Bot |
Beitrag
#
|
Google Ads |
|
|
|
Vereinfachte Darstellung | Aktuelles Datum: 23.04.2024 - 12:47 |