anno2007: if() mit umlaute

Hallo,

ich will eine if()-Abfrage mit umlaute erstellen.

Bisher hatte ich das so:

[php]
if ($a == "löschen") {
 make_erase($b);
}
[/php]

Jetzt habe ich alle umlaute convertiert in &...;:

[php]
if ($a == "löschen") {
 make_erase($b);
}
[/php]

Dies geht aber nicht. Es kommen keine Fehler oder so, sondern er sagt $a sei nicht "löschen".

Warum? Wie kann ich das lösen?

Gruß
anno2007

  1. Hi,

    Bisher hatte ich das so:
    if ($a == "löschen") {

    und warum hast du das geändert?

    Jetzt habe ich alle umlaute convertiert in &...;:
    if ($a == "löschen") {

    Das ist natürlich Käse. In PHP haben HTML-Entities nichts verloren.

    Es kommen keine Fehler oder so, sondern er sagt $a sei nicht "löschen".

    Das wird wohl stimmen. Äh, wer ist "er"?

    Warum? Wie kann ich das lösen?

    Warum hast du dir überhaupt dieses Problem gebaut?

    Schönes Wochenende noch,
     Martin

    --
    Die meisten Menschen werden früher oder später durch Computer ersetzt.
    Für manche würde aber auch schon ein einfacher Taschenrechner genügen.
    1. Hallo Martin,

      Äh, wer ist "er"?

      Das Script.

      Warum hast du dir überhaupt dieses Problem gebaut?

      Da ich jetzt MySQL-5 habe und da nichts mehr mit ä,ü,ö richtig angezeigt bzw. verarbeitet wird. Das kann man zwar teilweise umstellen auf latin..., aber der export der DB geht nicht mehr richtig in diesem Format.

      Ich will, dass das Script irgendwie das versteht (ö). Nur wie?

      Gruß
      anno2007

      1. Hallo,

        Warum hast du dir überhaupt dieses Problem gebaut?
        Da ich jetzt MySQL-5 habe und da nichts mehr mit ä,ü,ö richtig angezeigt bzw. verarbeitet wird.

        dann vermute ich, dass die Default-Codierung der Datenbank von ISO-8859-x auf UTF-8 umgestellt wurde. Das kannst du wahrscheinlich auch wieder zurückstellen.

        Das kann man zwar teilweise umstellen auf latin..., aber der export der DB geht nicht mehr richtig in diesem Format.

        Die andere Alternative wäre, auch deine PHP-Scripte gleich in UTF-8 zu speichern. Dann kannst du auch wieder nach Herzenslust Umlaute und andere Sonderzeichen im Klartext schreiben.

        Ich will, dass das Script irgendwie das versteht (ö). Nur wie?

        Gar nicht. Du bringst verschiedene Kontexte durcheinander. Die Entity-Referenzen werden von HTML (also im Browser) aufgelöst, aber PHP wird auf dem Server ausgeführt, lange bevor die Entity-Referenzen interpretiert werden.

        So long,
         Martin

        --
        You say, it cannot be love if it isn't for ever.
        But let me tell you: Sometimes, a single scene can be more to remember than the whole play.
        1. Hallo Martin,

          Die andere Alternative wäre, auch deine PHP-Scripte gleich in UTF-8 zu speichern. Dann kannst du auch wieder nach Herzenslust Umlaute und andere Sonderzeichen im Klartext schreiben.

          Wie kann ich das script im UTF-8-Format speichern?

          Gruß
          anno2007

          1. Wie kann ich das script im UTF-8-Format speichern?

            Mit welchem Editor arbeitest du denn?
            Falls du mit dem einfachen Texteditor von Windows arbeitest, kannst du die Codierung beim "Speichern unter" angeben.

            mfg
            Rato

            --
            §§§
            Meine Postings basieren lediglich auf mein Wissen und können völliger Blödsinn sein.
            §§§
            1. Hallo Rato,

              Mit welchem Editor arbeitest du denn?
              Falls du mit dem einfachen Texteditor von Windows arbeitest, kannst du die Codierung beim "Speichern unter" angeben.

              Habe bisher noch eventl. wichtiges nicht geschrieben: Meine PHP-Scripte sind in einer MySQL-DB.

              Gruß
              anno2007

              1. Hallo,

                noch was vergessen: suche also einen Befehl zum Codieren in UTF-8.

                Gruß
                anno2007

              2. Hi!

                Habe bisher noch eventl. wichtiges nicht geschrieben: Meine PHP-Scripte sind in einer MySQL-DB.

                Und in welcher Codierung liegen sie vor?

                BTW: Womit holst du die Scripte aus der DB, so daß sie von PHP ausgeführt werden?

                Schöner Gruß,
                rob

                1. Hallo ,

                  Und in welcher Codierung liegen sie vor?

                  latin1_german_ci

                  BTW: Womit holst du die Scripte aus der DB, so daß sie von PHP

                  Habe eine index.php dort wird:
                  mittels mysql_query("SELECT.........")
                  und dann mittels eval() der Code ausgeführt/ausgegeben.

                  Gruß
                  anno2007

                  1. Hi!

                    Habe eine index.php dort wird:
                    mittels mysql_query("SELECT.........")
                    und dann mittels eval() der Code ausgeführt/ausgegeben.

                    Ach du Schande... ;-)

                    Warum machst du das?
                    Läßt sich das nicht irgendwie vermeiden?
                    Wieso hast du deine Scripte alle in der Datenbank?

                    Um Rasmus Lerdorf zu zitieren:
                    „Wenn eval() die Antwort ist, dann hast Du die falsche Frage gestellt.“

                    Du solltest wirklich nur dann mit eval() arbeiten, wenn es absolut nicht anders möglich ist.
                    Und wenn es nicht anders möglich ist, dann hast du meist ein ziemliches schräges Konzept entworfen, daß du unbedingt überdenken solltest.

                    Schöner Gruß,
                    rob

                    1. Hi,

                      zu meinem username: sitze grad an einem ubuntu rechner mit Text-Browser ohne .htaccess unterstützung (für login bei meinem original username erforderlich). Bitte zu dem PC keine komentare, bin nämlich grad am basteln.

                      Ach du Schande... ;-)

                      Warum machst du das?
                      Läßt sich das nicht irgendwie vermeiden?
                      Wieso hast du deine Scripte alle in der Datenbank?

                      Um Rasmus Lerdorf zu zitieren:
                      „Wenn eval() die Antwort ist, dann hast Du die falsche Frage gestellt.“

                      Du solltest wirklich nur dann mit eval() arbeiten, wenn es absolut nicht anders möglich ist.
                      Und wenn es nicht anders möglich ist, dann hast du meist ein ziemliches schräges Konzept entworfen, daß du unbedingt überdenken solltest.

                      was ist denn an eval so schlecht? Läuft super. (ich hab mir ein eigenes CMS proammiert. Bitte hierzu keine Komentare. ich weis, dass es schon fertige kostenlos gibt.).

                      Gruß
                      anno2007

          2. Hi!

            Wie kann ich das script im UTF-8-Format speichern?

            Das kommt auf deinen Editor an...

            Aber selbst notepad.exe bietet dir die Möglichkeit, eine Codierung anzugeben.
            Wenn du dort auf "speichern unter" gehst, findest du dort irgendwo unter dem Dateinamen das Feld "Codierung".

            Aber das hält jeder Editor natürlich anders. Wo du die Möglichkeit hast, die verwendete Codierung einzustellen, mußt du schon selber schauen.
            Wenn du die Menüpunkte durchsiehst, sollte das aber nicht allzuschwer zu finden sein. Notfalls hat deine Editor sicher eine Hilfefunktion...

            Schöner Gruß,
            rob

      2. echo $begrüßung;

        Da ich jetzt MySQL-5 habe und da nichts mehr mit ä,ü,ö richtig angezeigt bzw. verarbeitet wird. Das kann man zwar teilweise umstellen auf latin..., aber der export der DB geht nicht mehr richtig in diesem Format.

        Wenn du dem MySQL-Server nicht sagst, welche Kodierung du verwendest, geht er von seiner Default-Einstellung aus. Es ist immer eine gute Idee, nach dem Verbindungsaufbau die gewünschte Kodierung einzustellen und bei Kommandozeilentools per Option die gewünschte Zeichenkodierung festzulegen.

        MySQL-Handbuch-Kapitel: Character Set Support

        echo "$verabschiedung $name";