Mailinglisten-Archive |
> Hallo miteinander, > > auf unserer Webseite ist ein Glossar eingebunden. > Beispieltabelle: id, wort, > mehrwoerter, beschreibung. > Der nächste Schritt, alle Inhalte der Webseite (News, > FAQ,...) sollen beim > Aufruf durchgeparsed werden und alle gefunden Glossarwörter > durch einen > link/href zum entsprechenende Glossareintrag ersetzt werden. > Bisher alles schön und gut. > > Aber ein paar Probleme bestehen noch. > Momentan geh ich alle Glossarwörter per Schleife einzeln > durch und ersetz > diese mit str_replace. > Jetzt gibt es aber bestimmte Wörter z.b. "Test" und z.B. > "Server Test"! > > Meine schleife nimmt so als erstes das Wort "Test" (je nach > Reihenfolge in > der DB), findet es im Beispieltext "hier und bla bla Server > Test geht..." > und ersetzt nur "Test", obwohl "Server Test" auch im Glossar > steht. Das > dumme nach dem str_replace findet er kein "Server Test" mehr, > da das bereits > ersetzt wurde ("Server <a href=blabla>Test<a>"). > > nun, meine Fragen... > Wie löse ich dieses Problem am besten? > Bzw, geht man dabei einen ganz anderen Weg (Glossar) als oben erwähnt? > mal ganz trivial würde ich meine Suchbegriffe halt erst mal nach Zeichenkettenlänge absteigend sortieren... Aber das ist eine interessante Frage, was ähnliches habe ich bei uns implementiert, aber noch nicht vollständig automatisiert. Ich will aber den Weg genau andersrum gehen, da träte das Problem nicht auf, vielleicht ist das ja für Dich auch interessant. Bei uns werden die Artikel von den Authoren in ein selbstgebasteltes CMS (Basis war phpCMS, aber ich habe ein paar Authorentools davorgeschaltet und eine Datenbank dahinter) eingegeben. Die Lexikoneinträge (wie sie bei uns heissen) ebenfalls. Was ich vorhabe ist, dass die Authoren in den Artikeln bei allen Begriffen, die erläuterungsbedürftig sind einen selbstdefinierten Tag rum machen, der dafür sorgt, dass vom CMS später der entsprechende Code eingefügt wird um einen Link zu generieren der ein neues Fenster aufmacht in dem dann die Datenbankabfrage den oder die entsprechenden Lexikoneinträge zu dem Stichwort präsentiert. ('die' weil ich in der Lexikondatenbank nicht nur nach Begriff suche, sondern auch noch eine Volltextsuche in der Erläuterung mache und dann alle Treffer, nach Relevanz gewertet ausgebe.). Dieser Teil steht auch schon - Von da aus ist es natürlich leichter nicht im Lexikon nachzuschauen, sondern einfach alle Artikel zu durchsuchen und für alle Begriffe die noch nicht als Stichwort im Lexikon vorhanden sind defaulteinträge reinzuschreiben ('tut mir leid, kommt noch, blabla) und den Authoren dann ständig die Lexikoneinträge die noch geschrieben werden müssen vor Augen halten zu können. Das hat gegenüber deiner Variante klare Vorteile, gleichzeitig aber auch den Nachteil, dass wenn ein Author ein Wort für nicht erklärungswürdig hält und später ein anderer Author in einem anderen Artikel das Wort definiert, dann wird in erstem Artikel nie der Bezug zum Lexikon auftauchen - womit wir dann doch wieder bei deinem Problem wären... -- Gruß Mike Beck mike.beck_at_ibmiller.de
php::bar PHP Wiki - Listenarchive