Automatische Seitenaufteilung durch fiktiven Befehl

Hallo liebe Tutorials.de Community,
ich bin geübt mit php und mysql trotzdem stehe ich vor einem Problem.

Ich möchte in mein Artikel System eine Funktion einbauen das der Inhalt durch einen Befehl "Seitenweise" aufgeteilt wird.

Um es noch zu verdeutlichen.
Ich hab einen Text der länger ist, und nun füge ich an einer beliebigen stelle einfach "<pagebreak>" ein.

Jetzt soll er beim Eintragen in die Datenbank diese abschnitte einzeln eintragen.
Z.b.
Test Text test Test Test
<pagebreak>
aaaaaaa

Nun möchte ich das er "Test Text test Test Test" als eigenen eintrag reinscheibt und "aaaaaa" allein einträgt.

Ich bräuchte einen kleinen Denkanstoß, vielleicht könnt ihr mir ja helfen.
Das "Durchblättern" nachher ist kein Problem halt am Eintragen scheitert es.
Mfg, Chris
 
[phpf]preg_split[/phpf] ist dein Freund :) (Oder [phpf]explode[/phpf])

PHP:
$seiten = preg_split('/<pagebreak>/i', $text);
foreach ($seiten as $nr => $seite) {
	echo 'Seite '.$nr.': '.$seite.'<br />';
}
 
Das ist super, ich danke dir,die Funktion kannte ich noch nicht.
Ahm eine andere Frage tut sich dann aber über diese Methode auf.
Wie sag ich ihm denn das er nur den bestimmten text abschnitt auf der einzelnen Seite laden soll?

Also wenn ich das dann jetzt mit meinem Seitenweise blättern verbinde.
Am anfang den Text geben und dann übergibt er das automatisch? Oder wie funktioniert das nun?
 
Du willst also z.B. nur Seite 3 anzeigen?

Wenn du eine Datenbank benutzt, würde ich für jede Seite eine Zeile in einer Tabelle verwenden. Wenn nicht, dann musst du bei jedem Seitenaufruf wieder deinen Gesamttext splitten. Das sieht dann z.B. so aus:

PHP:
<?
$iSeite = $_GET['pagenum'];
$aSeiten = preg_split('/<pagebreak>/i', $text); 
echo $aSeiten[$iSeite-1]; // erste Seite hat den Index 0, deshalb minus 1!
?>

Dann musst du natürlich noch die Seitenlinks anbringen. Die Gesamtzahl der Seiten ermittelst du in diesem Fall mit count($aSeiten); .
 
alles klar dann speicher ich den komplett text einfach mit dem pagebreak in der datenbank ab, pluss die anzahl der pagebreaks dann ne for schleife der den "nächste Seite" generiert :)
Ich dank dir vielmals,super schnelle hilfe :)
übrigens.....ergebniss kannste dir auf http://www.esgn.net ansehen morgen oder so :)
 
Und für alle die sowas mal suchen, hier ist es fertig. Für die experten wahrscheinlich unsauber aber das ist ja nurn beispiel:

$iSeite = $_GET['pagenum'];

$aSeiten = preg_split('/<pagebreak>/i', $text);
echo $aSeiten[$iSeite-1]; // erste Seite hat den Index 0, deshalb minus 1!
echo"<br>";
echo "Alle Seiten:\n" . count($aSeiten);
echo "<br>Waehle Seite:\n";
$alleseiten = count($aSeiten);
for($i = 1; $i <= $alleseiten; $i++)
{
echo "<a href=test.php?pagenum=$i>$i</a>" . "\n";
}
echo "<br>";
if($iSeite == 1):
echo "";
else:
$bSeite = $iSeite - 1;
echo "<a href=test.php?pagenum=$bSeite>Vorherige Seite</a>";
endif;

if($iSeite == $alleseiten):
echo "";
else:
$iSeite++;
echo " <a href=test.php?pagenum=$iSeite>Nächste Seite</a>";
endif;


$text sollte dann eure Eingang bzw der text aus dem mysql teil sein.
 
Zurück