Alle Files in einem Verzeichnis includen

radarin

Angesehenes Mitglied
Hallo Liste

Ich möchte dass autom. alle Files in einem Verzeichnis in einer Seite includet werden. Welche Funktionen sind dafür nötig..?

Thanx René
 
verzeichniss auslesen, und dann jede Datei einzeln laden...
z.b.CODE # ungetestet #
$verzeichniss="./dateien";
$verz=opendir ($verzeichniss);
while ($file = readdir ($verz)) {
if($file != "." && $file != ".."){
include("$file");
}
}
 
Ich würde die IF-Bedingung noch etwas erweitern, damit er nicht noch zufällig ein Verzeichnis versucht einzubinden. Im Allgemeinen ist aber eher von einer solchen Vorgehensweise abzuraten, dann lieber ein Array abarbeiten in den die entsprechenden Dateiennamen stehen.

QUOTE $verzeichniss="./dateien";
$verz=opendir($verzeichniss);
while ( $file = readdir ($verz) ) {
if ( $file != "." && $file != ".." && !is_dir($file) ) {
include("$file");
}
}
closedir($verz); /* schließen des Verzeichnis-Handle */




MfG Sascha Ahlers
 
Alles automatische ist doof, zumal du die Reihenfolge dann nicht so gut bestimmen kannst und zum anderen eingschleusste Daten von 3ten zu verherenden Folgen führen kann.
 
opendir funktioniert eh nicht richtig. wäre auch ok das einlesen auf .htm dateien zu beschränken. und eine sortiwerung nach dateinamen würde ausreichen.
 
CODE

<?
$extension = "html";
$i=0;
$n=0;
$handle=opendir ("pfad/zum/dir");

while (false !== ($file = readdir ($handle))) {
if ($file == "." || $file == ".."){}
else {
$expl = explode(".",$file);
if ($expl[1] == $extension) {
$i++;
$array[$i] = $file;
}
}}
closedir($handle);
if ($i > 0)
{
sort($array);
while (list ($key, $val) = each ($array))
{
include "pfad/zum/dir/$val";
$n++;

}} else {
print "Sorry, die Datenbank ist leer.";
}
echo "$n Dateien gefunden";


?>


 
QUOTE (Roberto Zehnder @ So 26.2.2006, 13:10)Alles automatische ist doof, zumal du die Reihenfolge dann nicht so gut bestimmen kannst und zum anderen eingschleusste Daten von 3ten zu verherenden Folgen führen kann.

Wenn man die Reihenfolge des Arrays selber festlegt wird, und es nicht irgendwie sortiert, ist dies kein Problem. Ich verfahre selber bei einer Funktion so, um entsprechendende Konfigurationsdateien von Modulen einbinden zu lassen.
Dabei sollte man jedoch darauf achten, dass die Variable nicht von außen verändert werden kann, in C/C++ würde ich einfach const dazu benutzen, so einfach ist das leider in PHP nicht.
sad.gif
Man könnte es wohl in PHP 5 mit etwas Ticksen über Klassen hinbekommen, dies wäre aber ein recht schlechter Programmierstil...



MfG Sascha Ahlers
 
Danke für Eure Hilfe, mit der letzten Vorlage klappt es, offenbar mit numerisch aufsteigender Ausgabe. Kann diese auch noch umgekehrt werden? Das wäre perfekt. Ich benenne die Dateien z.B. 20060213.htm.

Die Variable $key kommt nur in 'list ($key, $val)' vor, das verwirrt mich etwas...
 
Zurück
Oben