Hilfe - Suche - Mitglieder - Kalender
Vollansicht: PHP5 und XML
HTML-Editor phase 5 Support > Fragen, Lösungen zu HTML-Problemen bzw. Webdesign-Fragen - Talk > HTML
Andreas
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
harlequin
moin!

Wenn du die Zeichenkodierung im Browser auf UTF-8 umstellst wird alles gut... smile.gif

have fun!
Lars

PS: Gut, wie du das in Header Informationen bekommst weisst du denke ich.... wink.gif
i.b.g
Hallo,

ZITAT(harlequin @ 16.03.2005 - 12:16)
Wenn du die Zeichenkodierung im Browser auf UTF-8 umstellst wird alles gut... smile.gif
*
Warum das? Bei mir sind die Umlaute zu sehen wenn ich iso-8859-1 einstelle.

Richtig ist, dass es besser ist einen ordentlichen Header mitzugeben.
harlequin
ZITAT(i.b.g @ 16.03.2005 - 13:11)
Hallo,

Richtig ist, dass es besser ist einen ordentlichen Header mitzugeben.
*


moin!

War ein Schnellschuss, hatte nur das probiert... smile.gif
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... wink.gif

have fun!
Lars
Andreas
Yo, richtig verpackt ist das noch nicht blush.gif 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
harlequin
moin!

ZITAT(Andreas @ 16.03.2005 - 13:20)
Yo, richtig verpackt ist das noch nicht  blush.gif 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.... blink.gif
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... wink.gif lurker.gif

have fun!
Lars
Andreas
Ja, so habe ich's ja auch gemacht *g* Nur nicht hochgeladen ... ich kann ja auch lokal testen wink.gif 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 ...
harlequin
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 wink.gif 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('ä','&auml;',$string);
*grummel* So auf die ganz blöde Tour halt.... smile.gif

have fun!
Lars
i.b.g
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.
Andreas
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 ...
Andreas
tongue.gif

http://filmfacts.drfm.de/filme_archiv_a_f.htm?alpha=ziffern

Ich Doof ... das hätte ich schon seit Jahren haben können. Hätte mir viel Arbeit erspart ...
Dieses ist eine vereinfachte Darstellung unseres Foreninhaltes. Um die detaillierte Vollansicht mit Formatierung und Bildern zu betrachten, bitte hier klicken.
Invision Power Board © 2001-2012 Invision Power Services, Inc.