Hallo Felix,
Die Funktion zeigt mir das Wort an.
Also $word1 sind die Wörter nach dennen gesucht wird, das htmlconverter ist nur für Umlaute etc.
1. Vielleicht solltest du die Ausgab von htmlconverter() mit
preg_quote() escapen. Denn es könnten sich darin Zeichen befinden, die preg_replace() "durcheinander bringen" könnten.
2.
... nutze folgendes Suchmuster:
$suchmuster[$id] = "/([\s])".htmlconverter($word1)."([\s.,:?!)])/i";
Und das gilt auch für die Zeichen in der zweiten Klammer: Der Punkt und das Fragezeichen sind in PCRE Zeichen mit besonderer Bedeutung. Entwerte sie mit dem Backslash, sonst werden sie als was anderes erkannt, als gewünscht.
Ich würde auch Reguläre Ausdrücke in PHP nicht in doppelte Hochkommas setzen, denn in dem Fall, kann es sein, das PHP die Inhalte dieser Zeichenketten "vorinterpretiert".
Mal zusammengefasst:
$suchmuster[$id] = '/([\s])'.preg_quote(htmlconverter($word1), '/').'([\s\.\,\:\?\!)])/i'
MffG
EisFuX
... Suchmaschinen-Blog ...