Ganze Ordner mit dem Includebefehl einbinden?

PHP:
<?php
/***********************************************************************
* Diese Funktion wird JEDE Datei includen, die sich im Ordner befindet *
* der in $basedir angegeben wird ("." wo das script ist / "name" ist   *
* im Ordner mit diesen Namen)                                          *
***********************************************************************/
$basedir = ".";
function includeall($basedir){
	if ($handle = @opendir($basedir)) {
		while (false !== ($file = readdir($handle)))
		{
			if ($file == '.' || $file == '..'){} else {
				if (is_file($file)){include $file;
				}
			}
		}
		closedir($handle);
	}
}
?>

<?php
includeall($basedir);
?>

Ich übernehme keine Gewähr dafür, das es wie gewünscht funktioniert - ist noch ungetestet, sollte aber laufen.
 
Nuinmundo hat gesagt.:

[SARCASM ON]Aussagekräftiges Kommentar ... [SARCASM OFF]
... bitte um vernünftigen Hintergrund oder verbessertes Beispiel. Vielleicht schreibst Du sogar ein eigenes, besseres Beispiel?

Weil in diesem Script einfach ein include reinzuhauen wird einige Probleme verursachen. Ein "LOL, ja, wieso fragst du?" wird Dein möglicherweise riesiges Wissen und Deine Erfahrung zum Ausdruck bringen. Der Problemlösung wird man aber nicht näher rücken ...

Problem:

Das Script wird ALLES includen wollen. Egal ob Datei oder Ordner.
"." und ".." werden übrigens durch das Handle mit ausgegeben, also sollten Sie ausgefiltert werden.

PHP:
// so nicht verwenden!!!
<?php 
$handle=opendir ('pages'); 
echo "Verzeichnis-Handle: $handle\n"; 
echo "Dateien:\n"; 
while (false !== ($file = readdir ($handle))) { 
echo "$file\n"; 
} 
closedir($handle); 
?>

Kritik ist grossartig,
wenn sie nach Überheblichkeit klingt ist das traurig,
immer sollte sie aber fundierte Beispiele und Erklärung beinhalten,
sonst wird sie zu einer unhaltbaren These.


Sorry falls ich auf 180 gehe, aber nichtssagende Kurzsätze ohne Subjekt, Prädikat, Objekt bringen höchstens Deine Postingzahl in Rekordhöhen, helfen aber überhaupt nicht weiter.

Eine schöne Klasse von Jonathan kann man übrigens auch verwenden um die Dateien zu sammeln und dann zu includen.

http://www.tutorials.de/tutorials74200.html
 
Zuletzt bearbeitet:
jetzt hast es geschafft

jetzt will ich dich endgültig adoptieren.

Danke für das Loben meiner Klasse, ein
großes Lob für deine Erklärung und
"Mundverbot" für alle Spötter. :)

Jona
 
vielleicht meinte Nuinmundo mit seinem kommentar auch nur sowas:

PHP:
if ($file != '.' || $file != '..') {
     if (is_file($file)) {
          include($file);
     }
}

;o)
 
Jo das meinte ich!
Und das Tz tz war ja auch nicht negativ gemeint!

Und zu dem LOL, wieso fragst du?:
Woher soll ich wissen, dass er Code will? Er hat ja nichmal gesagt, dass es probleme gibt, oder er nicht weiss wie ers machen soll!!

<edit>Ich bin nicht posting geil! Mir is es wurscht, ob ich 500 odda 400 Posts hab!</edit>
 
Zuletzt bearbeitet von einem Moderator:
Mir ist schon klar, das ich das ebenso mit != oder in der if-kurzform hätte machen können. Wenn du so kurze Antworten gibst, solltest Du damit rechnen, das man Dich falsch versteht.

Jedenfalls kam das bei mir so rüber als ob Du mich verarschen wolltest... :rolleyes:

Laß die Leute nicht raten was Du meinst... :)

Aus seinem Post konnte man doch klar sehen, das da nicht alles verstanden wurde. Das Beispiel war auch nicht lauffähig.

Sorry wegen den Posts, war nicht so gemeint. Aber *grrr* wenn Du nur so wage Dinge schreibst, kann man ja mal in einer schlechten Laune alles hineininterpretieren.

---

Cool, Jona is mei Papa nu :) :)

Aber: Mir geht's net um Lob, sondern um's helfen. :mad:
 
Zuletzt bearbeitet:
PHP:
<?php
/***********************************************************************
* Diese Funktion wird JEDE Datei includen, die sich im Ordner befindet *
* der in $basedir angegeben wird ("." wo das script ist / "name" ist   *
* im Ordner mit diesen Namen)                                          *
***********************************************************************/
$basedir = ".";
function includeall($basedir){
    if ($handle = @opendir($basedir)) {
        while (false !== ($file = readdir($handle)))
        {
            if ($file == '.' || $file == '..'){} else {
                if (is_file($file)){include $file;
                }
            }
        }
        closedir($handle);
    }
}
?>

<?php
includeall($basedir);
?>

Ich übernehme keine Gewähr dafür, das es wie gewünscht funktioniert - ist noch ungetestet, sollte aber laufen.

Hallo,

ich hätte da eine Frage zum auflisten der Inhalte aus allen Dateien die in einem Ordner liegen:

PHP:
$basedir = ".";
Durch "." gebe ich den aktuellen Ordner an, das habe ich verstanden. Was muss ich schreiben wenn ich einen Ordner eine Ebene tiefer ansprechen will ("Mein_aktueller_Ordner/Zielordner")?
PHP:
$basedir = "./zielordner";
oder
$basedir = "/zielordner";
funktioniert nicht.

Ich bin ganz neu im php Bereich und ein echter n00b o_O

Liebe Grüße
Anna
 
Zuletzt bearbeitet:
Hallo,

habe es mit

PHP:
foreach (glob("zielordner/*.php") as $filename)
{
    include $filename;
}

geschafft ;-)

LG Anna
 
Zurück