Heim > Artikel > Backend-Entwicklung > Einführung in die Verwendung von mkdir in PHP
Wie PHPmkdir ein mehrstufiges Verzeichnis erstellt
Erklären wir zunächst, dass viele Freunde vielleicht denken, dass mkdir so lange Dateien erstellen kann Da sie einen Pfadordner angeben, ist dies tatsächlich nicht der Fall. Ein einzelnes MKDIR kann nur Verzeichnisse auf einer Ebene erstellen, nicht jedoch Verzeichnisse auf mehreren Ebenen.
Die Beschreibung von mkdir im Handbuch lautet wie folgt:
Erklärung
bool mkdir ( string pathname [, int mode [, bool recursive [, resource context]]] )
Versuchen Sie, ein neues Verzeichnis zu erstellen, das durch den Pfadnamen angegeben wird.
Hinweis: Möglicherweise möchten Sie den Modus mithilfe einer Oktalzahl angeben, was bedeutet, dass die Zahl mit Null beginnen sollte. Der Modus wird auch durch die aktuelle umask geändert, die mit umask() geändert werden kann.
Hinweis: Der Modus wird unter Windows ignoriert. Optional seit PHP 4.2.0.
Der Standardmodus ist 0777, was den maximal möglichen Zugriff bedeutet. Weitere Informationen zum Modus finden Sie auf der Seite chmod().
(Empfohlenes kostenloses Lernvideo-Tutorial: PHP-Video-Tutorial)
Beispiel 1. mkdir()-Beispiel
<?php mkdir("/path/to/my/dir", 0700); ?>
Gibt TRUE zurück, wenn erfolgreich, wenn fehlgeschlagen Gibt FALSE zurück.
Hinweis: Seit PHP 5.0.0 kann rmdir() auch mit bestimmten URL-Wrapping-Protokollen verwendet werden. In Anhang N finden Sie eine Liste der von rmdir() unterstützten URL-Kapselungsprotokolle.
Hinweis: Unterstützung für Kontext wurde in PHP 5.0.0 hinzugefügt. Eine Beschreibung des Kontexts finden Sie unter Referenz-CLX, Stream-Funktionen.
Hinweis: Der rekursive Parameter wurde in PHP 5.0.0 hinzugefügt.
Hinweis: Wenn der abgesicherte Modus aktiviert ist, prüft PHP, ob das manipulierte Verzeichnis dieselbe UID (Eigentümer) hat wie das ausgeführte Skript.
Das Obige sind die Beschreibungsinformationen im PHP5-Handbuch, das heißt, Sie können einen Ordner wie diesen erstellen: mkdir('./test',0777). Aber wie erstellt man rekursiv mehrstufige Verzeichnisse?
Die Methoden sind:
1. Die Verzeichniserstellungsfunktion mkdir unter PHP5 fügt einen neuen Parameter rekursiv auf true hinzu, der Zweck der rekursiven Erstellung eines Verzeichnisses kann erreicht werden Funktioniert nicht für PHP4.
2. Schreiben Sie eine rekursive Methode zum Erstellen mehrstufiger Verzeichnisse.
Hier erkläre ich die zweite Methode. Es gibt zwei Methoden:
Die erste (verwenden Sie mkdirs, um mehrstufige Eltern zu generieren)
function mkdirs($dir, $mode = 0777) { if (is_dir($dir) || @mkdir($dir, $mode)) return TRUE; if (!mkdirs(dirname($dir), $mode)) return FALSE; return @mkdir($dir, $mode); }
Erklärung:
1. Lassen Sie uns zunächst kurz über den Unterschied zwischen mkdir() und mkdirs() sowie is_dir und dirname() sprechen:
mkdir() kann nur Dateien in vorhandenen Verzeichnissen erstellen (. das heißt, der Elternteil muss es haben).
mkdirs() kann Ordner in nicht vorhandenen Verzeichnissen erstellen. Beispiel: a//b, Sie können mehrstufige Verzeichnisse erstellen.
dirname() gibt den Verzeichnisteil des Pfads zurück.
is_dir() wird verwendet, um zu bestimmen, ob der angegebene Dateiname ein gültiges Verzeichnis ist, und gibt in diesem Fall TRUE zurück. Wenn es nicht existiert (oder kein Ordner ist), versuchen Sie, es zu erstellen. Natürlich existiert das übergeordnete Verzeichnis möglicherweise nicht und mkdir wird nicht erfolgreich erstellt, es wird jedoch kein Fehler gemeldet. Verwenden Sie daher @, um Nicht-Ordner zu unterdrücken. fatale Fehler.
(2) Wenn keiner der übergebenen Parameter die Bedingungen erfüllt, geben Sie die zweite if-Anweisung ein. Rufen Sie zunächst den Verzeichnisteil des Pfads ab. Natürlich kann es sich um einen mehrstufigen übergeordneten Parameter handeln, der dies nicht tut vorhanden, also wird mkdir verwendet (), um zuerst das übergeordnete Verzeichnis zu erstellen (gibt FALSE zurück, wenn es nicht erfolgreich ist), dann verwenden Sie mkdir, um das endgültige Verzeichnis zu erstellen.
Okay, das Obige ist die erste Option. Zweiter Typ (Hinweis: Diese Lösung ist ziemlich rationalisiert, es ist eine ziemlich gute Lösung, es wird empfohlen, sie zu verwenden)function create_folders($dir){ return is_dir($dir) or (create_folders(dirname($dir)) and mkdir($dir, 0777)); }
Okay, oben erfahren Sie, wie Sie mit PHP Ordner (und Ordner mit mehreren Ebenen) erstellen. ^_^
Zusammenfassung:
1. Verwenden Sie einen neuen Parameter rekursiv in mkdir, der mit PHP5 geliefert wird, indem Sie rekursiv auf true setzen, können Sie den Zweck der rekursiven Erstellung von Verzeichnissen erreichen, jedoch für PHP4 Das wird nicht funktionieren.
2. Verwenden Sie in meiner eigenen Methode mkdir, um mehrstufige übergeordnete Verzeichnisse zu erstellen.
3. Verwenden Sie weiterhin mkdir, um es sehr geschickt zu erstellen.
Empfohlene Tutorials zu verwandten Artikeln:
PHP-TutorialDas obige ist der detaillierte Inhalt vonEinführung in die Verwendung von mkdir in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!