strcmp String mit Umlauten, UTF8
fraenzer
- php
Hallo!
Ich hab ein einfaches HTML-Formular, wobei der Submit-Button mit einer value belegt ist, die Umlaute enthält, der Button-Name ist ganz normal.
Wenn ich bei der Zielseite des Formulars eine Abfrage mache, ob $_POST["Button-Name"] existiert, sagt er mir ja, wie aber kann ich eine weitere Prüfung einbauen, ob die value gleich meiner value ist.
Beispielsweise habe ich als value "Hühner", der Button-Name lautet dann "huehner", und ich möchte abfragen: strcmp($_POST["huehner"], "???") == 0.
Was trag ich denn dann als Vergleichswert ein? Weder Hühner noch Hühner noch Hühner funktioniert.
Danke schonmal!
Gruß
fraenzer
hi,
Was trag ich denn dann als Vergleichswert ein? Weder Hühner noch Hühner noch Hühner funktioniert.
Hühner funktioniert, wenn die Daten als UTF-8 übertragen werden, und du dein Script auch als UTF-8 speicherst.
gruß,
wahsaga
echo $begrüßung;
Beispielsweise habe ich als value "Hühner", der Button-Name lautet dann "huehner", und ich möchte abfragen: strcmp($_POST["huehner"], "???") == 0.
Warum machst du das (aus PHP-Sicht) so umständlich? Du kannst Strings direkt miteinander vergleichen: $string == $string2
Was trag ich denn dann als Vergleichswert ein?
Am besten das, was vom Client gesendet wird.
Weder Hühner noch Hühner noch Hühner funktioniert.
Wild rumraten ist nicht immer zielführend. Du bist hier nicht im HTML-Kontext, in dem eine solche Kodierung von Sonderzeichen funktioniert. PHP ist sogar so freundlich, die im HTTP-Kontext übertragenen Daten zu dekodieren, so dass du sie in reiner Form vorliegen hast (falls nicht das Feature Magic Quotes dazwischenfunkt). Lass dir ausgeben, was in $_POST steht: print_r($_POST); (Ein Quelltext-Blick oder ein vorangestelltes <pre> erhöht die Übersichtlichkeit der Ausgabe.)
Und noch besser wäre, wenn du durchgehend eine Kodierung verwendest, für den Script-Code, für die Datenhaltung, für die Kommunikation mit dem Client.
echo "$verabschiedung $name";