Pagination und Explode Ausgabe Hilfe

Hey Leute,

ich habe mal eine Frage zu dem Code hier unten:
Ich habe eine Textdatei mit verschiedenem Inhalt und kann diesen auch mittels „explode“ auslesen.
Jetzt wollte ich allerdings noch Pagination hinzufügen. Allerdings komme ich hier irgendwie nicht so wirklich weiter.
Beides einzeln funktioniert ohne Probleme. Dadurch, dass ich aber die Beitrage wie mittels explode auslesen will, muss ich dies ja in der Pagination vornehmen und leider kommt da bei mir nur Käse bei rum. Entweder gibt er nur eins aus, oder wie momentan, auf jeder Seite das gleiche. Ich kann zwar jetzt die richtige Anzahl an Beiträgen pro Seite ausgeben, allerdings keine verschiedenen.

Hier kann man sehen, wie es aussieht.
Ich bin leider mit meinem Latein etwas am Ende.

$lines = file('startseite.txt'); # This is your text file.
//$line_amount = count($lines);
$line_amount = $n;
#echo '<pre>'; print_r($lines); echo '</pre>';

$perpage = 1; #This number specified how many lines to show on a page.

$p = isset($_GET['p']) ? $_GET['p'] : 1;
for ($i = (($p * $perpage) - $perpage); $i <= (($perpage * $p) - 1); $i++){
    if($i >= $line_amount){
        break;
    }
    else{
        if($lines[$i] != '')
		{
			
			
			$beitrag = file("startseite.txt");
			krsort($beitrag);
			
				foreach($beitrag as $ausgabe => $value)
				{
				//if ($ausgabe == 0){echo "$ausgabe </br>";}	
				
				if ($ausgabe == ($n-1)){
					echo"$n";
					
				$ausgabe = stripslashes($value);
				$zerlegen = explode("|", $value);

					

			
						if ($zerlegen[3] != "")
						{    		
						echo" $zerlegen[3] <br> Von $zerlegen[1] am $zerlegen[2]   ";
							if ($zerlegen[4] != "")
							{   
							echo"
							<tr>
							<td >
							<i>$zerlegen[4]</i>
							</td>
							</tr>
							";
   
							}
						echo"<br><br><br>";
						}
				}
			
					
					
				} $n=$n-1;
			 # This is the output loop.
        }
    }
}

//$p = $p + $perpage;

?>       

Hallo Frankoo

Viel zu kompliziert, kann man einfacher haben:

  <?php 

    
    function mock_template($zerlegen) {
        print_r($zerlegen);
    }
    
    $lines = file('startseite.txt'); # This is your text file.
    
    
    $p = isset($_GET['p']) ? $_GET['p'] : 1;
    $anzahl_eintraege = 2;
    $seiten = array_chunk($lines, $anzahl_eintraege);
    
    if(isset($seiten[$p - 1])){
        foreach ($seiten[$p - 1] as $zeile) {
    
            $zerlegen = explode("|", $zeile);
            mock_template($zerlegen);
        }
    }
  
    ?>
    <table summary="" cellpadding="10" cellspacing="0"  border="0" class="global-links-menu">
        <tr>
            <td>
                <a href='?p=1'>Back</a>
            </td>
            <td >
                <a href='?p=1'>1</a>
            </td>
            <td >
                <a href='?p=2'>2</a>
            </td>
            <td >
                <a href='?p=2'>Next</a>
            </td>    
        </tr>
    </table>
?>

Hier übernimmt die Paginierung die Funktion array_chunk. Außerdem sollte man HTML / PHP Logik auch bei etwas einfachen Sachen trennen. Daher die Funktion mock_template.

Gruss Lars