phpbar.de logo

Mailinglisten-Archive

[php] Nur die nächste Datei im Verzeichnis verlinken - Wie?

[php] Nur die nächste Datei im Verzeichnis verlinken - Wie?

Achim Fink achim at aff-web.de
Fre Nov 9 02:58:37 CET 2007


> Auftrag von Kirsten Bohlig
> Mein Problem:
> Ruft man eine dieser Dateien aus der Liste auf, kommt man auf eine
"Folgeseite".
> Jetzt hätte ich gerne, dass auf dieser "zweiten" Seite nur *ein* Link
angezeigt wird, nämlich der auf die Datei, die als nächstes im Verzeichnis >
>  > aufgelistet ist, ein eigentlich doch schlichter "Weiter"-Link also.
Also,
Hier ein Ansatz:
Zuerst dein Ausgangsscript etwas verändert:

$dir = "test"; // Verzeichnisname
$verzeichnis = openDir($dir);
$i = 1;   // dieser zähler ist für das array
while ($file = readDir($verzeichnis))
{ 	
  	if($file != substr_count($file,".php"))
		{
		  $datei = fOpen($dir . "/" . $file, "r");
		  $inhalt = fRead($datei, 1000);
		  fClose($datei);
		  ereg("<h1>(.*)<\/h1>" , $inhalt , $extract);
		  $files[$i] = $file;   // hier erstelle ich ein array in
dem die Dateiname gespeichert werden.
 
// hier erstelle ich ein array für die Ausgabe auf der ersten Seite.
// und gebe dem Link noch einen parameter (?nr=aufrufende Seitennr)mit
		  $content[] = "<a href=\"".$dir."/" .$file .
"?nr=".$i."\">$file</a>";
		  $i++;   //hier zähle ich den zähler hoch
		}
}
closeDir($verzeichnis);
?>

<html>
<head></head>
<body>
<?php
session_start();  //jetzt starten wir eine Session in der wir etwas
abspeichern können.
$_SESSION['seiten'] = $files;  //hier schreiben wir die Datename in die
Session
foreach ($content as $line) //ab hier die Ausgabe auf der ersten Seite
{  
	print $line."<br>";
}
?>
</body>
</html>

++++++++++++++++++++++++++++++++++++++

Hier jetzt das script in der gefundene Datei: (z.b test2.php)
<html>
<head></head>
<body>
<?php
session_start();   // session wieder starten
$content = $_SESSION['seiten'];  // array wieder aus session lesen
$nr = $_GET['nr']; // parameter wieder aus url auslesen
$nr_next = $nr+1; // nächste seitennr einstellen
$nr_prev = $nr-1; //vorherige seitennr einstellen
$next_page = $content[$nr_next]; //dateiname aus dem array lesen (nächste
Datei)
$prev_page = $content[$nr_prev]; //dateiname aus dem array lesen (aufrufende
Datei)
// hier wird dann der link zusammengebaut mit vor und zurück
print "<a href=\"".$prev_page."?nr=".$nr_prev."\">vorherige
Seite</a>&nbsp;<a href=\"".$next_page."?nr=".$nr_next."\">nächste
Seite</a>";

?>
</body>
</html>

Soweit hab ich das getestet. Natürlich ist das noch nicht ausgereift. Du
must noch das ende des array's prüfen und auch den anfang sonst geht der
letzte und der erste ins leere. Und der sprung von einem ins andere
Verzeichnis am Anfang...wenn du da wider ins aufrufende verzecinis willst
musst du dir auch noch was einbauen.
Ich hoffe es ist einigermaßen verständlich. Wenn noch Fragen: wieder
schreiben.

Gruß Achim


php::bar PHP Wiki   -   Listenarchive