Ich muss (sollte!) für eine Schularbeit eine Webpage errichten. Die
mySQL-Datenbank mit dem Glossar steht bereit. Das Problem ist aber, dass ich die ca. 50 Begriffe alle von Hand verlinken muss.
Ich habe auf bei Euch gesehen, dass es auch anders geht.
Ich bin in PHP noch nicht so gewandt, und weiss daher nicht wie ich dies meistern könnte. Bis habe ich mich nur mit Gästebücher, Vots, etc. beschäftigt.
Das Problem ist, dass ich nicht weiss, wie ein solcher Vergleich
zwischen der Datenbank und der Textseite aussieht, um dann die Links zu erstellen.
Ich wäre auf Ihre Hilfe sehr dankbar.
Mit freundlichen Grüssen
Manuel
Homepage selbermachen 7.852 Themen, 35.619 Beiträge
hi.
du brauchst den text als string (egal ob in einem oder ein einem array). ferner brauchst du die begriffe in der datenbank. dann zerteilst du den text einfach in einzelne worte (php: explode) - das liefert die ein array aus worten. ueber dieses kannst du dann iterieren und einzeln nach den worten in der datenbank suchen. ist das woirt nicht drin, steckst du es einfach an das ende einen neuen strings und haengst ein leerzeichen dran. ist es drin, machst du einen link draus und haengst es dann an den neuen string. am ende hast du dann den verlinkten text im neuen string, den musst du nur noch ausgeben.
WM_HOPETHISHELPS
thomas woelfer
vielen dank, damit kann ich ja schon etwas anfangen.
doch, ist diese methode nicht langsam???
nein, langsam ist das nicht. alles was passiert ist ein bisschen string ersetzung, das geht cpu seitig ohne das geringste problem. allerdings _erzeugt_ es sehr wohl cpu last, sodas man sowas nicht fuer seiten machen kann die sehr oft aufgerufen werden: es sei denn, man kuemmert sich darum das das nicht bei jedem aufruf passiert. das ist auch der grund, warum solche seiten bei nickles.de im cache landen und nur on demand einmal pro tag erzeugt werden - ansonsten wuerde der server unter der last recht schnell in die knie gehen. (allerdings reden wir hier auch von 5 mio seiten / monat - das ist eine ganze menge, und vermutlich deutlich mehr als die 'normale' schul- oder firmensite je bekommen wird.... )
WM_FYI
thomas woelfer
Ich verstehe dass also schon richtig:
Ich erstelle ein Array aus dem Text und ein Array aus den Begriffen, die definiert sind.
Anschliessend vergleiche ich jedes Text-Element vom Array mit dem Begriff-Element des anderen Arrays. Falls eine Uebereinstimmung besteht, so mache ich ein Link draus.
Stimmt dies? Geht dies wirklich nicht zu lange, den es gibt ja zwei Schleifen, etwa in der Art:
------------------------schnipp-----------------------------
for ($i=0;$i for ($j=0;$j
if ($text[i]==$name[j]):
//Link-Befehl...
endif;
}}
------------------------schnapp-----------------------------
Vielen Dank
Manuel
es kommt drauf an wo was herkommt. im wesentlichen ist es aber so, das der text vermutlich als array gut aufgehoben ist: fuer die 'linkworte' ist aber sicherlich ein hash element (map o.ae.) performance-seitig mit sicherheit besser. (alternativ, so die 'worte' in einer datenbank sind tuts auch ein db lookup...)
WM_HOPETHISHELPS
thomas woelfer
Vielen Dank Herr Woelfer!
Ich habe es geschafft! Das ganze habe ich nun als Funktion eingebunden.