phpbar.de logo

Mailinglisten-Archive

[php] Dateiordner mit PHP anlegen

[php] Dateiordner mit PHP anlegen

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Don Feb 23 12:34:21 CET 2006


Hallo Holger,

Am Donnerstag, 23. Februar 2006 11:53 schrieb Holger Zengerle:
> 	http://de.php.net/manual/de/function.mkdir.php
>
> Wenn ich das jetzt hernehme, muss ich dann neben dem $dir den
> kompletten Pfad angeben oder nur den Pfad unterhalt der ausführenden
> Seite, die den Ordner anlegt?

eine relative Pfadangabe müßte auch gehen. Ich sehe keinen Grund warum 
das nicht so sein sollte (oder sich einmal ändern sollte, Norbert ;-)). 
Die mkdir()-Funktion kapselt ja eigentlich nur die entsprechende 
Betriebssystem-Funktion, würde ich sagen. Und mkdir kann unter Linux 
natürlich auch mit relativen Pfaden umgehen.

Wenn Du nicht aufpaßt, können relative Pfade aber zu unerwünschten 
Ergebnissen führen, nämlich wenn Du im Dateisystem an einer anderen 
Position bist, als Du glaubst. Dann ist die Pfadbasis anders und die 
Verzeichnisse werden an einer anderen Stelle erstellt, als Du denkst.

> Wo muss ich da die variable "ordnernamen" noch angeben, dessen Ordner
> erstellt werden soll? Hinter dem $dir?
> Oder ist mit dem $dir schon der neue Ordnername gemeint?
>
> function mkdirs($dir = '/images/ausflugsfahrten/', $mode = 0777, 
$recursive = true) {

[...]

> }

Nein! Du beziehst Dich hier auf ein Beispiel aus den "User Contributed 
Notes" zu mkdir() im Online-Handbuch. $mode = 0777 und $recursive = 
true bedeuten nur, daß diese beiden Werte beim Funktionsaufruf 
weggelassen werden können und in diesem Fall mit diesen Werten belegt 
werden.

Es könnte also wie folgt aussehen:

	function mkdirs($dir, $mode = 0777,$recursive = true) {
		...
	}
	$bVerzAngelegt = mkdirs('/images/ausflugsfahrten/');

Die Einstellung $recursive = true kannst Du ruhig so lassen. Ansonsten 
gibt es einen Fehler, wenn Du /images/ausflugsfahrten/ erstellen 
willst, /images/ aber noch gar nicht existiert. Die Rekursion stellt 
sicher, daß in diesem Fall zunächst /images/ angelegt wird und 
anschließende dann /images/ausflugsfahrten/.

$mode solltest Du allerdings passend setzen, d.h. so eingeschränkt wie 
möglich.


Viele Grüße
Lutz

php::bar PHP Wiki   -   Listenarchive