Homepage selbermachen 7.851 Themen, 35.616 Beiträge

Möglichkeit, Text in verschiedene Mengen aufzuteilen

Gonzales / 10 Antworten / Flachansicht Nickles

Hallo,

ich habe mich mit PHP und Mysql beschäftigt und gleichzeitig eine Frage.

Ich habe eine Webseite, deren layout unbedingt darauf ausgelegt ist, dass sie nicht durch Scrollen zerhauen wird. somit brauche ich eine Möglichkeit, um langen Text auf mehrere Seiten aufzusplitten mittels einem {weiter} oder |1|2|3... Button. Der Text kommt aus einer MySQL Tabelle. Ich hatte mir das jetzt "trocken" mal so gedacht, dass ich den Text nach Sätzen auftrenne mit der Funktion explode. Ich will nicht, dass ich nach substr() oder so etwas aufteile, da ich sonst Gefahr laufe, und mitten im Wort unterbreche.

Also zu meiner idee:

ich habe den Text in der Variable $text vorhanden.

$text_exploded = explode(".",$text); //Die Sätze werden aufgetrennt

$text_counted = count ($text_exploded); // Zählen der Sätze

for($a=0;$a {
Hilfe und hier weiss ich nciht weitery

}


Wer kann mir jetzt einen Tipp geben wie ich weiterkomme ich hänge

bei Antwort benachrichtigen
Borlander Gonzales „Möglichkeit, Text in verschiedene Mengen aufzuteilen“
Optionen
Ich habe eine Webseite, deren layout unbedingt darauf ausgelegt ist, dass sie nicht durch Scrollen zerhauen wird.
Das ist schonmal ungünstig...

Ich hatte mir das jetzt "trocken" mal so gedacht, dass ich den Text nach Sätzen auftrenne mit der Funktion explode
Problem 1: Nicht alle Sätze mit enden mit einem "."
Problem 2: Ein Punkt stellt nicht zwangsläufig das Satzende dar (z.B. in Aufzählungen, Versionsnummern "1.2.3" oder auch in "z.B.")

Unabhängig davon tritt auch noch Problem 3 auf:
Wenn der Text automatisch "zerpflückt" wird nimmt die Übersichtlichkeit ab - die Seitenumbrüche werden dabei zwangsweise auch Thematisch zusammenhängende Sätze oder Stichpunkte auseinanderreißen. Falls die Inhalte HTML-Formatiert sind fehlen mit an Sicherheit grenzender Wahrscheinlichkeit anschließend schließende Tags...

Optimalerweise solltest Du die Texte also selbt trennen - z.B. mit
<br class="newpage"> (bei zusammenhängerder Darstellung als Zeilenumbruch, könnte man auch mit <hr> machen, newpage dient hier einfach nur zur Unterscheidung anderer evtl. vorhandener Zeilenumbrüche - bei zusammenhängender Darstellung lässt sich das auch zu Formatierungszwecken nutzen) oder
<!pagebrake> (würde als Kommentar einfach nur ignoriert)
Eben das was Dir am besten gefällt...

Große Vorteile dieser Methode:

  • Sinnvolle Trennung
  • einfaches und zuverlässiges Teilen
    $pages = explode($trenner, $text);
  • einfaches Ermitteln der Seitenanzahl zur Navigation
    mit count die Arraygröße ermitteln
    $page_count = count($pages);
    // for($page_nav = 1; $page_nav
  • einfache Ausgabe der Seiten
    echo $pages[$page];


Einziger Nachteil:
- minimal größerer Aufwand bei der Eingabe


CU Borlander
bei Antwort benachrichtigen
Frames? Wetterfrosch2
Frames? jdeen