Tino: ersetzen von ä ö ü in einem text

Hallo, ich hab folgendes Problem:
Ich will auf einer Seite den Inhalt eines in einer .txt gespeicherten Textes ausgeben und im Text ä ö und ü durch ä , ö und ü ersetzen. Nur das passiert hier nicht, und ich hab kein plan warum es nicht funktioniert.

  
<?php  
$text = file_get_contents("../../texte/text.txt");  
  
    $umlaute = array(  
	'ä' => '&auml;',  
        'Ä' => '&Auml;',  
        'ß' => '&szlig;',  
        'ö' => '&ouml;',  
        'Ö' => '&Ouml;',  
        'Ü' => '&Uuml;',  
        'ü' => '&uuml;',  
    );  
    $text = str_replace(array_keys($umlaute),  
        array_values($umlaute), $text);  
  
echo $text;  
?>  

Bitte helft mir :D

  1. Mahlzeit Tino,

    Ich will auf einer Seite den Inhalt eines in einer .txt gespeicherten Textes ausgeben und im Text ä ö und ü durch &auml; , &ouml; und &uuml; ersetzen.

    Warum solltest Du das wollen? Nutzt Du eine unpassende Zeichencodierung? Versuch's mal mit UTF-8 ... sowohl für die PHP- als auch die Textdatei. Dann kannst Du auf derartige Frickeleien komplett verzichten.

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  2. Funktioniert doch, du siehst es bloß nicht auf einer Webseite, da die Entitys vom Browser aufgelöst werden :D.

    file_put_contents("text.txt",$text);

    anstelle von echo und du wirst in der Datei die Entitys sehen.

    Gruß
    T-Rex

  3. Hallo,

    Ich will auf einer Seite den Inhalt eines in einer .txt gespeicherten Textes ausgeben und im Text ä ö und ü durch &auml; , &ouml; und &uuml; ersetzen.

    lass mich raten: Weil die Umlaute bei der Ausgabe kaputt sind und du nicht weißt warum?

    Nur das passiert hier nicht, und ich hab kein plan warum es nicht funktioniert.

    Vielleicht weil du versuchst eine nicht UTF-8 kompatible Funktion auf einen String in UTF-8 Kodierung anzuwenden?

    Bitte helft mir :D

    Finde heraus in welcher Kodierung die txt- und php-Datei vorliegen. Dann schaue in die PHP Logdatei und sage uns was du herausgefunden hast.

    Grüße

  4. Hallo Tino,

    Ich will auf einer Seite den Inhalt eines in einer .txt gespeicherten Textes ausgeben und im Text ä ö und ü durch &auml; , &ouml; und &uuml; ersetzen.

    das ist eine schlechte Idee.

    Nur das passiert hier nicht, und ich hab kein plan warum es nicht funktioniert.

    Eine Idee ist die, dass Deine PHP-Datei in UTF-8 codiert ist und Deine Text-Datei zum Beispiel in ISO-8859-1 oder Windows-1252 oder umgekehrt.

    Bitte helft mir :D

    Nutze eine entsprechende Zeichencodierung, die diese Zeichen darstellen kann, am allerbesten UTF-8 (ohne BOM). Konvertiere gegebenenfalls den Inhalt der Textdatei in diese Zeichencodierung.

    Als Editor empfehle ich Dir notepad++. Dieser zeigt Dir die verwendete Zeichencodierung an und kann auch umcodieren.

    Freundliche Grüße

    Vinzenz

    1. Dieser zeigt Dir die verwendete Zeichencodierung an und kann auch umcodieren.

      What? Das kann der? *such such* - Ja richtig jetzt wo du es sagst hatte ich auch mal genug Durchhalte vermögen danach zu suchen :D. Mensch und ich hab mir extra Eclipse installiert um (unter anderem) das UTF8 Zeugs umsetzen zu können....hmpf.

      Ja Danke gell :).
      T-Rex

      1. Hi,»» »» Dieser zeigt Dir die verwendete Zeichencodierung an und kann auch umcodieren.

        Mensch und ich hab mir extra Eclipse installiert um (unter anderem) das UTF8 Zeugs umsetzen zu können....hmpf.

        Das ist Pspad besser. Und die Mac Freunde unter uns leben eh in dem Luxus, BBedit nutzen zu dürfen. Der kann sogar sowas wie "reopen as ..."

        Gruesse, Joachim

        --
        Am Ende wird alles gut.
        1. Hallo,

          Dieser zeigt Dir die verwendete Zeichencodierung an

          genauer gesagt: er versucht die verwendete Zeichencodierung zu erraten. Mehr geht ja eh' nicht.

          und kann auch umcodieren.
          [...] BBedit [...]. Der kann sogar sowas wie "reopen as ..."

          ist das etwas anderes als das einfache Umstellen der Zeichencodierung (ohne Umcodieren). Das kann notepad++ sogar ohne erneutes Öffnen :-)

          Freundliche Grüße

          Vinzenz

  5. Hi,

    Ich will auf einer Seite den Inhalt eines in einer .txt gespeicherten Textes ausgeben und im Text ä ö und ü durch &auml; , &ouml; und &uuml; ersetzen.

    Der Tipp lautet: Lass den Unsinn.

    Nur das passiert hier nicht, und ich hab kein plan warum es nicht funktioniert.

    Weil du ein Problem im Umgang mit der Zeichenkodierung hast.
    Behebe dieses Problem, dann brauchst du auch nicht mehr Umlaute durch Entities ersetzen.

    http://www.w3.org/International/questions/qa-escapes#not

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  6. Hi,

    Ich will auf einer Seite den Inhalt eines in einer .txt gespeicherten Textes ausgeben und im Text ä ö und ü durch &auml; , &ouml; und &uuml; ersetzen.

    Abgesehen von dem richtigen Einwand meiner Vorredner, dass Du Deine Codierung überprüfen solltest, gibts dafür htmlentities

    Gruesse, Joachim

    --
    Am Ende wird alles gut.