PHP searchbar klein- und GROßbuchstaben?
Wie programmiert es ein das die Suchmaschine, Klein- und Großbuchstaben zu erkennt? Wenn der gesuchte Satz also "FISH" lautet, soll er ihn auch mit Kleinbuchstaben finden, also "fisch".
3 Antworten
Am einfachsten mit einem regulären Ausdruck, was sich bei einer Suche sowieso anbietet:
$str = 'Mein zu durchsuchender Text der groß und klein nicht unterscheidet';
$search = ['groß', 'Groß', 'mini'];
foreach ($search as $query) {
if (preg_match("/$query/imu", $str) !== false) {
echo "Wort $query gefunden.\n";
} else {
echo "Wort $query nicht gefunden.\n";
}
}
Ausgaben:
Wort groß gefunden.
Wort Groß gefunden.
Wort mini gefunden.
Wichtig ist der Modifier i im Pattern, durch den nicht zwischen Groß- und Kleinschreibung unterschieden wird. m noch für die Suche in mehrzeiligen Texten und u for Unicode, damit zum Beispiel auch das ß gefunden wird.
Alternative kannst du den zu durchsuchenden und gesuchten Texte vorher mit strtolower oder besser mb_strtolower in Kleinbuchstaben umwandeln und dann suchen.
Jeder String der zur Suche rein kommt wird erst einmal mit Methoden wie toLower oder toUpper in kompletter groß- bzw. kleinschrift gesetzt. Jetzt machst du das mit dem zu durchsuchendem Inhalt genau so.
Mit regulären Ausdrücken auch möglich, aber wenig performant und weiß nicht wie das Prinzip im Hintergrund funktioniert. 🤔
Normalerweise macht die Suchmaschine keinen Unterschied zwischen groß oder klein. Die macht dann mehrere Vorschläge, oder es wird nach der Rechtschreibung gefragt.
OK. da kann ich dir leider nicht helfen, aber jetzt habe ich verstanden, was du meinst.
Hab die frage etwas falsch gestellt. Ich meinte eher, wie ich es implementieren kann das die Suchmachine die ich gerade Programmiere klein und Großbuchtaben sozusagen ignoriert. Gibt es in PHP dafür irgendeine funktion?