Mailinglisten-Archive |
Hallo Kirsten, Am Donnerstag, 8. November 2007 schrieb Kirsten Bohlig: > Ich stoße dabei öfter an meine Grenzen, da ich die Sprache nicht > beherrsche, das Vokabular nicht vorrätig habe. ich würde einfach einmal das Online-Handbuch durcharbeiten. Von vrne bis hinten. Bevor jetzt irgendein Verdacht aufkommt: Das meine ich wirklich ernst. :-) Das PHP-Handbuch ist in der Regel sehr verständlich geschrieben und mit sehr eingängigen Beispielen ausgestattet, die gängige Programmieraufgaben lösen. Spätestens in den User Contributed Notes findest Du auch Hilfe für anspruchsvollere Aufgaben. Also verschaffe Dir einfach mal einen Überblick. Das Herumstochern im Nebel ist nicht sinnvoll. :-) > Also: > Mit folgendem Code lese ich die Dateien aus einem Verzeichnis aus, > filtere die php-Dateien aus und verlinke sie mit ihren jeweiligen > h1-Überschriften als Linktext. > > $dir = "OrdnerXY"; // Verzeichnisname > $verzeichnis = openDir($dir); > 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); > $content .= "<a href=\"".$dir."/" .$file . "\">$extract[1]</a>"; > } > } > closeDir($verzeichnis); > > Ich bekomme es auch hin, mir nur die "neueste Datei" verlinkt > anzeigen zu lassen, das Verzeichnis rauf und runter zu sortieren usw. > > 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. > > Wie erreicht man dieses Ziel ohne Datenbankanbindung? Du kommst oben ohne Datenbankanbindung aus, also läßt sich die Aufgabe auch insgesamt ohne Datenbank lösen. Im Kern mußt Du immer nur wissen, welche Einträge die Verzeichnisliste hat und wo Du aktuell in der Verzeichnisliste stehst. > Läßt sich ein solcher Teil in das obige Skript einbauen (wenn ja, > wie?!) oder ist das ein vollkommen neues? > Das müsste doch gehen und dürfte eigentlich gar nicht so schwer sein, > oder doch? Es gibt verschiedene Ansätze. Eine Möglichkeit ist, einfach wie oben auf jeder Seite das Verzeichnis auszulesen. Oder Du liest das Verzeichnis auf der ersten Seite einmal aus und speicherst Dir das Ergebnis in einem Cookie, in einer Session oder einfach in einer Textdatei auf dem Server. Je nach Datenmenge kommt die eine oder andere Lösung nicht in Betracht, z.B. die mit dem Cookie. Anschließend brauchst Du auf den folgenden Seiten nur auf die gespeicherten Daten zuzugreifen. Bei einem solchen Cache-Mechanismus mußt Du allerdings bedenken, daß eventuell zwischenzeitlich eine Datei im Verzeichnis hinzugekommen sein könnte, die in dem Cache dann nicht vorhanden ist. Das muß aber nicht von Nachteil sein. Es kommt nur darauf an, was man will bzw. braucht. Dann mußt Du noch ermitteln bzw. Dir merken, wo Du in der Liste stehst. Diese Angabe kannst Du z.B. mit dem Link über GET weitergeben oder ebenfalls in einem Cookie oder der Session speichern und auf der nächsten Seite wieder auslesen. Viele Grüße, Lutz
php::bar PHP Wiki - Listenarchive