PHP searchbar klein- und GROßbuchstaben?

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.

Woher ich das weiß:Berufserfahrung – Entwickle seit > 20 Jahren Anwendungen mit PHP.

DerExcelMagnet 
Fragesteller
 02.11.2022, 11:04

Danke seeeeeeeehr hat mir sehr geholfen!!!!!

0

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. 🤔

Woher ich das weiß:Berufserfahrung

Normalerweise macht die Suchmaschine keinen Unterschied zwischen groß oder klein. Die macht dann mehrere Vorschläge, oder es wird nach der Rechtschreibung gefragt.


DerExcelMagnet 
Fragesteller
 02.11.2022, 10:04

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?

1
Lexa1  02.11.2022, 10:04
@DerExcelMagnet

OK. da kann ich dir leider nicht helfen, aber jetzt habe ich verstanden, was du meinst.

0