Text auf Begriffe überprüfen...

B

BartTheDevil89

Guest
Hallo,

ich habe zum Beispiel diesen Text hier:

$teststr = "Hallo ich bin ein Test und es gibt ja auch viele Tests hier in der ganzen Welt!";

Jetzt habe ich eine Datenbank in der Begriffe vorkommen:

id varianten erklärung
1 Test,Tests Hierbei handelt es sich um...
2 viele,vieler,vieles Das sind eine Vielzahl von dingen...

Also im Prinzip immer die ID, dann alle Varianten des Wortes und dann ne Beschreibung...

Jetzt suche ich zwei Infos:

1. Wie speichere ich am besten die Varianten alle ab? Also mit , getrennt oder gibts da bessere Ideen?
2. Wie kann ich jetzt den obrigen Teststring nach vorkommenden Worten überprüfen wenn ein Begriff vorkommt das Wort durch das Wort mit einem Link herum ersetzen? Natürlich soll er dabei auf alle Varianten eingehen die er kennt. Also im Prinzip soll er nachher den String so wiedergeben:

$teststr = "Hallo ich bin ein <a href="...">Test</a> und es gibt ja auch <a href="...">viele</a> <a href="...">Tests</a> hier in der ganzen Welt!";

Habt ihr Ideen wie ich sowas am besten umsetzen kann?

DAnke für eure Hilfe und Ideen...
rolleyes.gif
 
Die Datenbank würde ich dafür anders aufbauen.
Eine Tabelle, die die Beschreibung beinhaltet und eine mit den entsprechenden Schlagwörtern.

Beispiel:

Tabelle_1:

CODE
bid Beschreibung
------------------------------------------------
1 Hierbei handelt es sich um...
2 Das sind eine Vielzahl von dingen...
3 ...



Tabelle_2:

CODE
wid b_id Schlagwort
------------------------------------------------
1 1 Test
2 1 Tests
3 2 viele
4 2 vieles
5 1 testen
6 2 vieler



Über die Spalten bid und b_id sind diese Tabellen dann verknüpft.



Dann kannst du diese entsprechend auslesen:


CODE

//arrays für das replace
$arr_schlagwoerter = array();
$arr_link = array();

$result = mysql_query("SELECT bid, Schlagwort FROM Tabelle_2");

while( $row = mysql_fetch_assoc($result) )
{
$arr_schlagwoerter[] = $row['wort'];
// Der Link muss entsprechend angepasst sein. In diesem Fall würde jetzt die Seite "seite.php"
// die Tabelle_1 mit der entsprechenden bis auslesen...
$arr_link[] = "<a href='seite.php?bid=". $row['bid'] ."'>". $row['wort'] ."</a>";
}

// ersetzen der Schlagwörter durch den Link
$neuerstr = str_replace($arr_schlagwoerter, $arr_link, $teststr);

// Ausgabe
echo $neuerstr;




Ist jetzt nur schnell runtergeschrieben als spontane Idee, sollte aber klappen!

 
Hi,

die Idee ist gut und klingt auch logisch...aber beim überprüfen wäre es wichtig, dass es so servesparend wie möglich passiert. Also es sollen viele Texte und viele Schlagwörter überprüft werden und das ganze eben noch so sparend wie möglich für den Server.

Also gibts da wirklich nur die Möglichkeit alle Schlagworte abzufragen, zu speichern und dann mitm Text zu vergleichen? Oder gibts noch bessere Möglichkeiten?
 
Zurück
Oben