Homepage selbermachen 7.852 Themen, 35.619 Beiträge

PHP - Glossarbegriffe

(Anonym) / 6 Antworten / Baumansicht Nickles

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

bei Antwort benachrichtigen
thomas woelfer (Anonym) „PHP - Glossarbegriffe“
Optionen

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

this posting contains no tpyos.
bei Antwort benachrichtigen
(Anonym) thomas woelfer „hi. du brauchst den text als string egal ob in einem oder ein einem array ....“
Optionen

vielen dank, damit kann ich ja schon etwas anfangen.
doch, ist diese methode nicht langsam???

bei Antwort benachrichtigen
thomas woelfer (Anonym) „vielen dank, damit kann ich ja schon etwas anfangen. doch, ist diese methode...“
Optionen

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

this posting contains no tpyos.
bei Antwort benachrichtigen
(Anonym) thomas woelfer „hi. du brauchst den text als string egal ob in einem oder ein einem array ....“
Optionen

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

bei Antwort benachrichtigen
thomas woelfer (Anonym) „Ich verstehe dass also schon richtig: Ich erstelle ein Array aus dem Text und...“
Optionen

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

this posting contains no tpyos.
bei Antwort benachrichtigen
(Anonym) thomas woelfer „es kommt drauf an wo was herkommt. im wesentlichen ist es aber so, das der text...“
Optionen

Vielen Dank Herr Woelfer!
Ich habe es geschafft! Das ganze habe ich nun als Funktion eingebunden.

bei Antwort benachrichtigen