Intext - Keywörter aus MySQL DB

String

Erfahrenes Mitglied
Servus,

ich habe da ein kleines Problem.
Ich habe einen beliebig langen Text, und eine MySQL-Tabelle, mit Wörtern und Links also z.b. so:

Text:
Code:
Hallo,

lesen Sie hier Informationen über den neuen Zenoah-Motor

MySQL-Tabelle:
Code:
Wort // Link
Zenoah-Motor // zenoah.html

Jetzt will ich, dass der mir im Text automatisch das Wort Zenoah-Motor ersetzt.

Meint Problem ist jetzt nicht, das ersetzen, sondern wie ich das am besten löse.
Zerlege ich den Text in Wörter und vergleiche diese mit der MySQL-Tabelle ob das Wort vorhanden ist?
Bei einem 1000 Wörter langem Text und 5000 Wörter in der Tabelle, stelle ich mir das sehr sehr performance lastig vor.

Gibts da eine einfachere Möglichkeit die evt. auch nen bisschen schneller ist? ;)

Gruß
paD
 
Hab mal einen kleinen Code gebastelt.
Am Anfang die Liste aus der DB in 2 Arrays schreiben. Dabei aus dem Wort ein Pattern für ein preg_repalce machen und aus dem Link eine html-tag. Diese dann mit preg_replace auf deinen Text anwenden. Das gibt genau ein DB-Zugriff, egal wieviele Sätze du da durchjagst, denn du musst die Liste nur einmal laden.

PHP:
<?php 

    $string = "Hallo, lesen Sie hier Informationen über den neuen Zenoah-Motor";

    $sql = 'SELECT wort, link FROM myTable;';
    // Mit den folgenden Zeilen kannst du einen Array aus der DB laden der dem untenstehenden Beispiel entspricht
    //$result = mysql_query($sql);
    //while($row = mysql_fetch_assoc($result)){
    //    $patterns[]  = "/({$row[wort]})/";
    //    $htmlTags[]  = "<a href="{$row[link]}">{$row[wort]}</a>";
    //}
    
    //Diesee Arrays sind hier für Simulationszwecken. So siehen aber auch die Arrays aus, die aus der DB geladen werden            
    $patterns = array('/(Zenoah-Motor)/', '/(hier)/');
    $htmlTags = array('<a href="zenoah.html">Zenoah-Motor</a>', '<a href="test.php?id=15">hier</a>');  

    
    $output = preg_replace($patterns, $htmlTags, $string);
    
    echo $output;

?>

Und die Ausgabe sieht dann so aus
HTML:
Hallo, lesen Sie <a href="test.php?id=15">hier</a> Informationen über den neuen <a href="zenoah.html">Zenoah-Motor</a>
 
Zurück