Hallo!
Ich mache für ein Formular eine Abfrage, damit ich in -feldern Auswahlen vormakieren kann.
Das Problem ist aber, dass immer wenn Sonderzeichen oder Umlaute kommen, diese Abfrage nicht funktioniert.
Höchst wahrscheinlich vergleicht er Tür mit Tür (Bsp.) und stellt fest, dass es falsch ist.
Da muss es doch im Netz schon Funktionen geben, die die Sonderzeichen automatisch umwandeln!
Wo finde ich sowas, oder kann mir wer einen Anstoss geben, wie ich sowas selbst programmiere?
MfG
Geisterkarle
hi geisterkarte,
in solchen faellen helfe ich mir damit, in dem ich ‚ü‘ mit ‚ü‘ vergleiche.
also, in der selectbox steht im option-tag ‚Tür‘. im auswertungsscript vergleiche ich dann mit ‚Tür‘ und nicht mit ‚Tür‘.
viele gruesse, stefan
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
hi geisterkarte,
in solchen faellen helfe ich mir damit, in dem ich
‚ü‘ mit ‚ü‘ vergleiche.
also, in der selectbox steht im option-tag ‚Tür‘. im
auswertungsscript vergleiche ich dann mit ‚Tür‘ und
nicht mit ‚Tür‘.
viele gruesse, stefan
Hi!
Das Problem ist nur, dass ich nicht direkt Vergleichen kann, sondern aus einer Variable auslese!
Nun weiss ich nicht, ob nun Tür oder Tür in der Variable ist, bzw. mit was es verglichen wird!
Kann man sich das anzeigen lassen? Ein Deutscher Rechner kapiert halt Tür genauso wie Tür und gibt beidesmal Tür aus…
In der Datenbank steht zwar Tür, aber wer weiss, wie es dann rauskommt!
Kein Verweis auf einen Link, wo ich eine Funktion dafür finde? Das würde meine Arbeit erheblich erleichtern!
MfG
Geisterkarle
argl… sogar hier macht er aus $uuml; ü
argl… sogar hier macht er aus $uuml; ü
wenn du nicht weißt, wie es in deiner DB steht, wandle es
doch einfach mit htmlentities() um.
z.b.
if (htmlentities($row->var) == htmlentities($var)) {
echo „Werte sind identisch“;
}
Hallo,
mit str_replace() kannst Du einzelne Zeichen in Strings austauschen. Um alle ä, ü, ö durch ae, ue, oe austauschen zu lassen könntest Du so etwas benutzen:
$array1 = array(„ä“,„ü“,„ß“);
$array2 = array(„ae“,„ue“,„ss“);
for($x=0;$x
Hm… das erschien mir jetzt am besten, aber klappt nicht so recht. Also, hier habe ich einen ausschnitt auf form.php - zum HTML-Formulare erstellen:
while (list($val, $text) = each($entries)) {
$str .= ’ $text\n";
}
Wo genau muss ich die htmlenitities() setzen?
Also ich vermute mal etwas in richtung: elseif (htmlentities($default) == htmlentitities($val))
funktioniert leider aber net…
Kann mir wer die Funktion mit den htmlentities auflösen? oder geht des net?
MfG
Geisterkarle
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Geisterkarte, ich würde vor dem Berechnen (nicht in der Datenbank) generell alle Daten (z. B. Tür => Tuer) umwandeln:
$neustring = ereg_replace($muster,$reparatur,$altstring);
also
$neustring = ereg_replace(„ü“,„ue“,„Tür“);
So kannst Du alle unliebsamen Zeichen umwandeln oder entfernen (einfach mit dem String „“).
Häufig brauchst Du das auch, wenn Du unterschiedliche nicht überschaubare Zeichen oder Zeichenketten vereinheitlichen willst oder mußt (+ zu &:wink: oder (- zu _)!
Du könntest ein ganzes Wörterbuch damit anlegen.
Dann kannst Du in der Datenbank Deine alte „Tür“ stehen lassen und bist völlig unabhängig.
Gruß martin