Ben Kriemann: Mehrere Wörter in einem Text finden - Bitte um Optimierung

Beitrag lesen

Hallo!

Ich möchte einen rund 5000 Zeichen langen Text auf das Vorhandensein verschiedener Wörter überprüfen, welche in einer Datenbank abgespeichert sind (ca. 500 Einträge).

Derzeit lade ich die kompletten Daten und durchlaufe dann den Text:

$text = "Ganz langer Text";
$words = "Folgende Wörter kommen im Text vor:<br><br>";

$words_result = mysql_query("SELECT name FROM tabelle ORDER BY name");
while($words_tmp = mysql_fetch_array($words_result)) {
if(strstr($text,$words_tmp[name])) {
  $words .= $words_tmp[name]."<br>"; } }

Eben musste ich jedoch feststellen, dass diese Methode mit rund 0,8 Sekunden ziemlich lange dauert, was bei einem 500-fachen Durchlauf des Textes eigentlich auch kein Wunder ist. Daher hoffe ich, dass mir jemand von Euch einen Vorschlag bringen kann, wie sich das Ganze optimieren lässt.

Mit bestem Dank im Voraus,
Ben