Constantin: Ä, Ö, Ü und ß mit PHP umwandeln

Hallo liebe Community!

Ich stehe vor folgendem Problem: Wie kann ich denn bewirken, dass z.B. Daten aus einem Formular untersucht, und alle Ä, Ö, Ü und ß in Ä usw. umgewandelt werden?

Ist das machbar? Ich würde mich wirklich über eure Hilfe freuen!

MfG,
Consti

  1. Hallo,

    Ich stehe vor folgendem Problem: Wie kann ich denn bewirken, dass z.B. Daten aus einem Formular untersucht, und alle Ä, Ö, Ü und ß in Ä usw. umgewandelt werden?
    Ist das machbar?

    Ja

    Ich würde mich wirklich über eure Hilfe freuen!

    zuerst die Formulardaten in ein array einlesen, z.B. in $content_array.

    dann:

    $arrSearch = array 'ä','ö','ü','Ä','Ö','Ü','?');
    $arrReplace = array('ä','ö','ü','Ä','Ö','Ü','ß',);
    $content_array = str_replace($arrSearch, $arrReplace, $content_array);

    Gruß Fritz

    --
    ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)
  2. Hallo,

    Ich stehe vor folgendem Problem: Wie kann ich denn bewirken, dass z.B. Daten aus einem Formular untersucht, und alle Ä, Ö, Ü und ß in Ä usw. umgewandelt werden?

    Das leistet die Funktion htmlentities():

    <?php

    $teststr="ä ö ü Ä Ö Ü ß";
      print htmlentities($teststr); // ä ö ü &Auml; &Ouml; &Uuml; ß

    ?>

    MfG, Thomas

    1. Hallo,

      Wie kann ich denn bewirken, dass z.B. Daten aus einem Formular untersucht, und alle Ä, Ö, Ü und ß in &Auml; usw. umgewandelt werden?

      Das leistet die Funktion htmlentities():

      ups, klar.
      Weiß jemand, ob's eine entsprechende Umwandlung auch nach utf-8 gibt? oder muß ich das "händisch" machen.

      Gruß Fritz

      --
      ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)
      1. Hallo,

        Weiß jemand, ob's eine entsprechende Umwandlung auch nach utf-8 gibt? oder muß ich das "händisch" machen.

        utf8_encode() bzw. utf8_decode().

        MfG, Thomas

        1. Hallo,

          utf8_encode() bzw. utf8_decode().

          und wenn mir jetzt noch jemand sagen könnte, wie ich

          $arrSearch = array('&#xE4;','&#xF6;','&#xFC;','&#xC4;','&#xD6;','&#xDC;','&#xDF;');
          $arrReplace = array('ä','ö','ü','Ä','Ö','Ü','ß',);
          $content_array = str_replace($arrSearch, $arrReplace, $content_array);

          "eleganter" lösen kann, dann wär meine Sammlung komplett.
          utf8_decode() machts nämlich nicht.
          Im Ernst, ich bräuchte das wirklich.

          Gruß Fritz

          --
          ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)
          1. Hallo,

            und wenn mir jetzt noch jemand sagen könnte, wie ich

            $arrSearch = array('&#xE4;','&#xF6;','&#xFC;','&#xC4;','&#xD6;','&#xDC;','&#xDF;');
            $arrReplace = array('ä','ö','ü','Ä','Ö','Ü','ß',);
            $content_array = str_replace($arrSearch, $arrReplace, $content_array);

            "eleganter" lösen kann, dann wär meine Sammlung komplett.

            Unter http://de3.php.net/manual/de/function.get-html-translation-table.php befindet sich eine auf get_html_translation_table() aufbauende Funktion unhtmlentities(). Werte im Bereich bis 256, also auch die Umlaute, lassen sich so umwandeln:

            $teststr="&#xE4;";
            $teststr="&#".hexdec($teststr).";";
            print unhtmlentities ($teststr); // ä

            Eleganter als die bisherige Loesung ist das aber wohl nicht.

            MfG, Thomas

            1. Hallo,

              Eleganter als die bisherige Loesung ist das aber wohl nicht.

              trotzdem: Danke!
              Gruß Fritz

              --
              ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)
    2. Hallo nochmal!

      Danke für eure Antworten, Thomas's Variante ist wohl ein wenig unkomplizierter... :)

      MfG,
      Consti