String (ISO-8859-1) import und Ausgabe (UTF-8)

Hallo,

ich weiß mein Titel ist etwas eigenartig aber mir ist keine bessere Beschreibung eingefallen. Nun zu meinem Problem:

Ich lese eine Internetseite im Zeichensatz ISO-8859-1 in eine Variable ein.
Aus diesem String erzeuge ich ein Array.
In diesem Array suche ich nach bestimmten Zeilen, die durch andere ersetz werden.

[PHP]
// Beispiel:
// Original Array (ISO-8859-1)
$original = array (
„1“ = „Ich“,
„2“ = „habe“,
„3“ = „ein“,
„4“ = „Problem“,
„5“ = „mit“,
„6“ = „Umlauten“,
„7“ = „wie“,
„8“ = „ä“,
„9“ = „ü“,
„10“ = „ö“,
„11“ = „und ähnlichen“,
„12“ = „Zeichen“,
);

// Ersetzen Array (UTF-8)
$ersetzen = array (
„und ähnlichen“ = „und anderen“,
„ein“ = „kein“,
);

// Suche im Original Array nach Vorkommen im Ersetzen Array
foreach ($original as $num => $original){
foreach ($ersetzen as $old => $new){
if ($original[$num] == $old) {
$original[$num] = $new;
}
}
}
[/PHP]

Die Ausgabe sollte ja jetzt so aussehen:
[HTML]

„3“ = „kein“,

„11“ = „und anderen“,

[/HTML]

Jedoch sieht das ganze so aus:
[HTML]

„3“ = „kein“,

„11“ = „und ähnlichen“,

[/HTML]

Ich Glaube das ganze kommt durch die unterschiedlichen Kodierung der Seiten

Original Webseite: ISO-8859-1
PHP Datei: UTF-8
Ausgabe Webseite: UTF-8

Wie bekomme ich den String der Originalwebseite in ein UTF-8 Format, damit die Umlaute auch in der if-Abfrage richtig erkannt werden?

Ich danke euch fürs lesen
Silvo

Dann versuchs doch mal vorher umzuwandeln.
http://forum.de.selfhtml.org/archiv/2005/11/t118049/
Gruß
VoidZer0

Erst mal zum eigentlichen Problem

http://de3.php.net/manual/de/function.mb-convert-enc…
http://de3.php.net/manual/de/function.iconv.php
http://de3.php.net/manual/de/function.recode-string.php

Diese Funktionen gehören nicht zum PHP-Standard. Probier mal aus, welche davon bei deiner Installation verfügbar sind.

Dann noch zwei Tipps:

> foreach ($original as $num =\> $original){  
> foreach ($ersetzen as $old =\> $new){  
> if ($original[$num] == $old) {  
> $original[$num] = $new;  
> }  
> }  
> }

Ich nehme mal an dass du im Original in der ersten Zeile nicht zwei mal den gleichen Variablennamen verwendest, sonst funktioniert die ganze Sache nämlich überhaupt nicht.
Wenn du bei foreach das Referenzzeichen & verwendest, dann kannst du das Array verändern, indem du die Schleifenvariable veränderst:

foreach ($original as &$o)
{
 foreach ($ersetzen as $old =\> $new)
 {
 if ($o == $old)
 {
 $o = $new
 }
 }
}

Vielleicht könntest du die Sache auch noch kürzer schreiben:
(Jetzt werden auch Wortteile ersetzt, eventuell ist das nicht das was du willst.)

$suche=("und ähnlichen","ein");
$ersetze=("und anderen","kein");
$string = lese\_website\_ein();

$string = str\_replace($suche, $ersetze, $string);

Gruß sigterm