Seite 1 von 1

strtr-Frage

Verfasst: Mo 21.Sep, 2009 11:40
von Holger
Hi, ich versuche die schwedischen Umlaute für einen RSS-Feed mit strtr() zu ersetzen.

Code: Alles auswählen

$find = "ÀÁÂÃÅÄäàáâãåÒÓÔÕØÖöòóôõøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛùúûÿÑñ";
$replace = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUuuuyNn";
$title = strtr($title,$find,$replace);
$rss_desc = strtr($rss_desc,$find,$replace);
Leider ist das Ergebnis trotzdem nicht zufriedenstellend, weil
ä mit nO ersetzt wird und ö mit nI und å mit no

Ausgeworfen wird das mit

Code: Alles auswählen

print ("<title>" . htmlentities($title) . "</title>\n");
print ("<description>". htmlentities($rss_desc) . "</description>\n");
Was mache ich falsch?
Liegt der Fehler an htmlentities?

Am liebsten würde ich natürlich die Umlaute anzeigen, aber das klappt nicht ...

Re: strtr-Frage

Verfasst: Mo 21.Sep, 2009 13:37
von oxpus
Dazu stellt sich doch zunächst die Frage, wie die Inhalte für $title und $rss_desc kodiert sind.
Wie schaut denn der Quelltext des echo() dieser beiden Variablen aus?
Wenn dort die Zeichen, die du ersetzen willst, bereits kodiert sind, z. B. als HTML-Tags, dann musst du auch diese so ersetzen.

Re: strtr-Frage

Verfasst: Mo 21.Sep, 2009 13:39
von Holger
Hallo Karsten,

danke für die Antwort.
Im Netz habe ich diese Lösung gefunden:

Code: Alles auswählen

   $array = array ( 'ä' => '&auml;', 'ö' => '&ouml;', 'å' => '&aring;', 'Ö' => '&Ouml;', 'Ä' => '&Auml;', 'Å' => '&Aring;' );
   $title = strtr($title, $array );
   $rss_desc = strtr($rss_desc, $array );
Das klappt gut.


Komischerweise bekomme ich nicht den Titel ausgeworfen, sondern die erste Zeile der Discription, aber das ist eine andere Geschichte ...

Re: strtr-Frage

Verfasst: Mo 21.Sep, 2009 14:02
von oxpus
Ah ja. Dann lag es an der Darstellung, nicht an dem Input.