Es ist schon legitim, per Maschine ein Escapezeichen zu wählen, dass man per Tastatur üblicherweise nicht eintippen könnte (es sei denn, man kennt die ALT-Sequenz und hat einen entsprechenden transparenten Treiber installiert).
Unter Wikipedia http://de.wikipedia.org/wiki/Steuerzeichen findest Du eine Übersicht.
0x1A = Ersetzen wäre doch prädestiniert dafür.
OK, ich hab es jetzt mal so umgesetzt:
$ersatz = array(chr(26) => "_", "%" => chr(26)."%", "_" => chr(26)."_");
foreach($suchbegriffe as $key => $begriff) {
$suchbegriffe[$key] = strtr($begriff, $ersatz);
}
Das Steuerzeichen "Substitute" (0x1A) ist jetzt also das Escape-Zeichen und sollte der unwahrscheinliche Fall eintreten, dass ein solches im Suchstring vorkommt, wird es einfach durch ein "_" ersetzt. Damit hat der Benutzer zwar theoretisch doch wieder einen Joker zur Verfügung, aber das soll mich nicht weiter stören. ;)
Funktioniert alles wunderbar. Wenn an dem Code jetzt nichts mehr zu bemängeln sein sollte, sage ich nochmal herzlich danke für die Hilfe und erkläre das Problem damit als gelöst. :)
Viele Grüße,
Esteba