Umlaute in Switch-Anweisung
Hallo! Wir haben ein Problem mit den Umlauten in der Switch-Anweisung!
Als ascii-code sind alle Sonderzeichen 195, also kommt man in den default-Zweig. Wie kann man das lösen? Danke!
// überprüfen ob ein Name nur zugelassene Zeichen enthält
function isname($string)
{
for($i=0;$i<strlen($string);$i++)
{
echo ord($string[$i]) . "
";
switch($string[$i])
{
case "A":
case "B":
case "C":
........
case "w":
case "x":
case "y":
case "z":
case ".":
case "-":
case 'ä':
case 'ü':
case 'ö':
case 'ß':
case "Ä":
case "Ü":
case "Ö":
case " ":
break;
default:
return false;
}
}
return true;
}
Als ascii-code sind alle Sonderzeichen 195, also kommt man in den default-Zweig. Wie kann man das lösen? Danke!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 21720
Url: https://administrator.de/contentid/21720
Ausgedruckt am: 22.11.2024 um 22:11 Uhr
1 Kommentar
@WaldSchr4T
Hi,
versuch's mal so:
Ein Text:
Textlänge in tl1 speichern:
Die folg. Funktion durchsucht $text nach den in den eckigen Klammern, gültigen
Zeichen. Wird ein Zeichen gefunden, das nicht in den eckigen Klammern
aufgelistet ist, wird die Suche abgebrochen, die Anzahl der bis dahin
gefundenen Zeichen wird in $tl2 gespeichert, das Ergebnis in $erg, bzw. $erg:
//Textlängenvergleich und Ergebnisausgabe:
Gruß
Günni
Hi,
versuch's mal so:
Ein Text:
$text="Düsseldorf";
$tl1=strlen($text);
Zeichen. Wird ein Zeichen gefunden, das nicht in den eckigen Klammern
aufgelistet ist, wird die Suche abgebrochen, die Anzahl der bis dahin
gefundenen Zeichen wird in $tl2 gespeichert, das Ergebnis in $erg, bzw. $erg:
$tl2=ereg("[a-zA-ZäöüÄÖÜß]{0,}",$text,$erg);
if($tl1==$tl2){
echo "$erg ist OK!";
}else{
//echo "$erg ist nicht OK!"; Testausgabe vom Ergebnis
echo "$text ist nicht OK!";
}
Gruß
Günni