Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

[PHP] Problem bei Umsetzung eines Lexikons

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Thies
PostRank 3
PostRank 3
Beiträge: 98
Registriert: 16.03.2006, 15:16
Wohnort: Stadtilm

Beitrag von Thies » 01.09.2006, 14:00

Hallo,

ich brauche mal Euren Rat, vielleicht hat jemand Vorschläge, wie ich meine Idee (besser) umsetzen kann.

Im Rahmen der Erweiterung eines CMS arbeite ich an der Integration eines Lexikons. Das klappt auch alles soweit ganz gut. Als eine Option will ich eine automatische Verlinkung der Texte zu anderen Einträge erreichen. Also wenn z.B. in einem Text das Wort Bildungssystem vorkommt und das Wort Bildungssystem ein Begriff des Lexikons ist, dann soll automatisch zum Begriff Bildungssystem verlinkt werden.

Das könnte man theoretsich erreichen, dass nach der Erfassung eines Eintrages der Text sofort geprüft wird. Hat aber den Nachteil, dass bisherige Einträge nicht geprüft werden, ob dort im Text der neue Eintrag auch vorkommt. Und on-the-fly nach der Erfassung eines Eintrages alle Einträge zu prüfen, dürfte den Server je nach Anzahl der Einträge ganz schön schaffen :D

Also will ich wie folgt umsetzen:

Einmal in der Nacht wird per CronJob das Lexikon deaktiviert und alle Einträge geprüft. Danach wird das Lexikon wieder aktiviert. Zur Umsetzung nutze ich einen BBCode [lex]...[/lex]

Das bekomme ich auch hin. Die Idee ist, alle [lex] und [/lex] eines Textes zu löschen und danach per str_replace die Begriffe durchlaufen zu lassen, z.B. per

Code: Alles auswählen

foreach ($words as $i) {
   str_replace("/($i)/", " [lex]$i[/lex] ", $string);
}
Damit werden alle Worte wie Bildungssystem in entsprechende Links wie https://www.domain.de/lex/Bildungssystem umgewandelt.

Worte wie Bildungssysteme werden davon aber nicht erfasst, also will ich das der Erfasser in solchen Fälle doch manuell einen BBCode erfassen kann:

[lex="Bildungssystem"]Bildungssysteme[/lex]

Bei der Löschroutine würde aber das schliessende [/lex] gelöscht werden. Und jetzt weiss ich nicht mehr, wie ich das sinnvoll umsetzen kann.

Hat jemand von Euch eine Idee oder einen besseren Umsetzungsvorschlag?

Danke im Voraus

Frank-Andre Thies