Blöde Fragestellung aber ich weiß nicht wie ich es genau benennen soll.
Für eine Suchfunktion auf einer Webseite möchte ich die gefundenen Begriffe in der Vorschau der Suchergebnisse farblich markieren. Da die Webseite mehrsprachig ist, kommen auch viele Sonderzeichen wie Umlaute oder Akzentzeichen vor.
Nun möchte ich, dass der Nutzer sowohl Wörter mit Sonderzeichen, als auch ohne eingeben kann und immer das selbe findet. Er kann kann also bspw. nach „passe compose“ oder „passé composé“ suchen und findet immer die gleichen Seiten, auf denen „passé composé“ vorkommt.
In MySQL ist das bei der Suche kein Problem, da kann man mit COLLATE utf8_general_ci genau das erreichen. Schwierig wird es für mich, dass im Ergebnis zu markieren. Hier mal ein Beispielcode in PHP:
if (preg_match_all('/foo/ui', 'foo föö bar bär', $matches)) {
print_r($matches);
}
Das findet nur „foo“ und nicht „föö“. Umgedreht wird nur „föö“ gefunden. Die einzige Lösung die mir einfällt wäre so ein Ausdruck, der aber nicht sonderlich elegant ist und auch noch länger werden müsste:
'/f(?:o|ö)(?:o|ö)/ui'
Also zur Frage: Kennt jemand einen Modifikator oder irgendeine elegante Lösung, wie ich das besser und einfacher erreichen kann?