Stringvergleich nicht möglich wegen Umlaut?
ruffrider
- php
0 Kalle0 Tobias Kloth
Einen wunderschönen Sonntag wünsche ich,
folgendes:
ich führe grade einen Stringvergleich durch, der sieht in etwa so aus:
if($erg['name']=='Löschen')
{
.
.
.
}
Der zu prüfende String kommt aus der Datenbank und ich möchte nun gucken ob "Löschen" drinsteht, selbst wenn es so ist, wird das nicht erkannt, da es mit allem anderen klappt tippe ich auf den Umlaut. Weiß jemand ob das so ist und wie man das umgeht?
have a nice day.
Hallo,
ob es am Umlaut liegt, kann ich nicht sagen, aber hier eine Technik, das Problem zu umgehen:
$html_1 = array("Ä","Ö","Ü","ä","ö","ü","ß","","","","·");
$html_2 = array("Ä","Ö","Ü","ä","ö","ü","ß","„","“","â¬","•");
// UMLAUTE UMSETZEN:
for( $x = 0; $x < count($html_1); $x++ ){
$erg['name'] = str_replace( $html_1[$x], $html_2[$x], $erg['name'] );
}
if($erg['name']=='Löschen')
Gruß aus Worms, Kalle
Hallo Kalle,
$html_1 = array([...]);
$html_2 = array([...]);
for( $x = 0; $x < count($html_1); $x++ ){
$erg['name'] = str_replace( $html_1[$x], $html_2[$x], $erg['name'] );
die Schleife ist überflüssig, str_replace() kann man als 1. und 2. Parameter auch je eine Array übergeben:
$html_1 = array(...);
$html_2 = array(...);
$var = str_replace($html_1,$html_2,$var);
funktioniert genauso. (siehe auch http://de.php.net/str_replace)
Grüße aus Nürnberg
Tobias
Hallo ruffrider,
if($erg['name']=='Löschen')
Was gibt
echo '"'.$erg['name'].'"';
aus? Steht da in den Anführungszeichen wirklich nur 'Löschen'?
Der zu prüfende String kommt aus der Datenbank und ich möchte nun gucken ob "Löschen" drinsteht, selbst wenn es so ist, wird das nicht erkannt,
wenn du wissen willst, ob ein bestimmter String in einem anderen enthalten ist, geht das nicht mit einem einfachen Vergleich, da musst du schon eine String-Funktion (->http://de3.php.net/ref.strings) bemühen.
da es mit allem anderen klappt tippe ich auf den Umlaut.
was verstehst du unter "allem anderen"?
Grüße aus Nürnberg
Tobias