Hallo,
ich habe folgendes Problem:
Ich parse einen XML-Feed in php, was auch wunderbar funktioniert.
Nun gibt es den gleichen Feed erweitert (was ich gerne hätte), dieser wird aber mit falschem encoding ausgeliefert:
Der erste Feed, der läuft enthält Umlaute und beginnt mit
<?xml version="1.0" encoding="iso-8859-1" ?>
und läuft einwandfrei.
Der Zweite, von mir gewünschte, liefert auch Umlaute, also identisch dem Ersten, nur halt mehr Ergebnisse, beginnt aber mit
<?xml version="1.0" encoding="UTF-8" ?>
und erzeugt so die falsche Ausgabe der Umlaute.
Kann ich den Feed erst in eine Variable ziehen und vor dem Parsen die encoding Definitionen korrigieren?
Ich habe folgendes versucht:
$file = file( $searchurlakt ); // $searchaktuell ist die URL des XML-Feed
$filealt = "<?xml version="1.0" encoding="UTF-8" ?> ";
$filereplace = "<?xml version="1.0" encoding="iso-8859-1" ?>";
$file = str_replace ($filealt, $filereplace, $file);
danach parse ich $file:
foreach( $file as $zeile )
{
$start_titel = strpos( $zeile, "title=" );
if( $start_titel > 0 )
{
$ende_titel = strpos( $zeile, "" description" );
$laenge = $ende_titel - $start_titel;
$titel = substr( $zeile, $start_titel + 7, $laenge - 7 );
$ende_beschreibung = strpos( $zeile, "" siteHost" );
$laenge_beschreibung = $ende_beschreibung - $ende_titel;
$beschreibung = substr( $zeile, $ende_titel + 15, $laenge_beschreibung - 15 );
$ende_url = strpos( $zeile, "" biddedListing" );
$laenge_url = $ende_url - $ende_beschreibung;
$url = substr( $zeile, $ende_beschreibung + 12, $laenge_url - 12 );
Als Ergebnis ändert sich aber leider nichts - die falschen Umlaute bleiben drin.
Muss die Ersetzung woanders hin, oder ganz anders gelöst werden?
Bitte helft ...
Vielen Dank
brainsalade