Bonjour.
Folgendes Szenario: Ein Anwender gibt einen Text (welcher HTML-Tags als Formatierungen enthalten kann) ein, welcher anschliessend in einer (mySQL-)Datenbanktabelle gespeichert wird.
Nun soll der Text im Folgenden ausgegeben werden, dabei jedoch dynamisch, je nach Wortlaenge auf mehrere Seiten aufgeteilt werden.
Meine Ansaetze bisher -- konrekte Codevorschlaege waeren hier sehr erwuenscht ;-)
[list=a][*]Text mit PHP parsen und Woerter zaehlen, zum Zaehlen natuerlich strip_tags(); wie gut funktioniert eigentlich str_word_count()?[*]Falls Wortzahl gewisse Anzahl ueberschreitet, muss nun an dieser Stelle ein spezieller Marker eingefuegt werden, etwa '$$PAGEBREAK$$'
Problem hierbei: wie konrekt fuege ich hier einen String ein? Wie vermeide ich, dass z.B. innerhalb eines HTML-Tags etwas eingefuegt wird?[*]Bei der Datenbank-Abfrage muss nun geschaut werden, ob im Text der Marker vorkommt, wenn ja, muss nur der Text bis zum jeweiligen Marker ausgelesen werden und die Ausgabe entsprechend formatiert werden ("zur naechsten Seite"-Link, aber das ist ja eher trivial
Hmm, dann muesste ich die Marker wohl noch entsprechend numerieren, damit eine bestimmte "Seite" selektiert werden kann ... also $$PAGEBREAK_1$$ oder so. [/list=a]
Zum letzten Punkt habe ich bereits ein wenig mit den mySQL-Funktionen herumprobiert, folgendes funktioniert schon recht gut, ist aber natuerlich nur ein Ansatz: (text_feld) ist dabei ... das Feld mit dem Text!
Mit SUBSTRING_INDEX(text_feld, '$$PAGEBREAK_1$$', 1 bzw. -1) sollte ich ja an die Teilzeichketten VOR und NACH dem Marker kommen ...
Ich waere dankbar fuer weitere Hinweise zu diesem Thema; wie macht ihr das? Gibt es einen eleganteren Weg? Wie sieht das performancetechnisch bei etwas laengeren Texten aus?
(Es muss doch jemanden geben, der sowas auch macht, diese Aufteilung sieht man doch staendig ;-)
Merci!
Folgendes Szenario: Ein Anwender gibt einen Text (welcher HTML-Tags als Formatierungen enthalten kann) ein, welcher anschliessend in einer (mySQL-)Datenbanktabelle gespeichert wird.
Nun soll der Text im Folgenden ausgegeben werden, dabei jedoch dynamisch, je nach Wortlaenge auf mehrere Seiten aufgeteilt werden.
Meine Ansaetze bisher -- konrekte Codevorschlaege waeren hier sehr erwuenscht ;-)
[list=a][*]Text mit PHP parsen und Woerter zaehlen, zum Zaehlen natuerlich strip_tags(); wie gut funktioniert eigentlich str_word_count()?[*]Falls Wortzahl gewisse Anzahl ueberschreitet, muss nun an dieser Stelle ein spezieller Marker eingefuegt werden, etwa '$$PAGEBREAK$$'
Problem hierbei: wie konrekt fuege ich hier einen String ein? Wie vermeide ich, dass z.B. innerhalb eines HTML-Tags etwas eingefuegt wird?[*]Bei der Datenbank-Abfrage muss nun geschaut werden, ob im Text der Marker vorkommt, wenn ja, muss nur der Text bis zum jeweiligen Marker ausgelesen werden und die Ausgabe entsprechend formatiert werden ("zur naechsten Seite"-Link, aber das ist ja eher trivial
Hmm, dann muesste ich die Marker wohl noch entsprechend numerieren, damit eine bestimmte "Seite" selektiert werden kann ... also $$PAGEBREAK_1$$ oder so. [/list=a]
Zum letzten Punkt habe ich bereits ein wenig mit den mySQL-Funktionen herumprobiert, folgendes funktioniert schon recht gut, ist aber natuerlich nur ein Ansatz: (text_feld) ist dabei ... das Feld mit dem Text!
Code:
SELECT IF((LOCATE('$$PAGEBREAK_1$$', text_feld) != 0), (SUBSTRING_INDEX(text_feld, '$$PAGEBREAK_1$$,' 1)), 'nur eine seite') FROM text_tabelle;
Ich waere dankbar fuer weitere Hinweise zu diesem Thema; wie macht ihr das? Gibt es einen eleganteren Weg? Wie sieht das performancetechnisch bei etwas laengeren Texten aus?
(Es muss doch jemanden geben, der sowas auch macht, diese Aufteilung sieht man doch staendig ;-)
Merci!