Heim > Backend-Entwicklung > PHP-Tutorial > Einführung in die Verwendung von mkdir in PHP

Einführung in die Verwendung von mkdir in PHP

王林
Freigeben: 2023-04-08 11:54:01
nach vorne
3402 Leute haben es durchsucht

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]]] )
Nach dem Login kopieren

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);
?>
Nach dem Login kopieren

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);
}
Nach dem Login kopieren

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));
 }
Nach dem Login kopieren

Erklärung: 1 Allgemeiner Prozess: Nachdem Sie den Pfad ermittelt haben, beurteilen Sie 1. Ob es sich bereits um ein gültiges Dateiverzeichnis handelt. Wenn ja, kehren Sie zurück und beenden Sie das Programm. Wenn nicht (da OR hier als Auswahlbedingung verwendet wird, d. h. solange eine der Bedingungen erfüllt ist), ruft es sich selbst rekursiv auf und es gibt ein Verzeichnis weniger im übergebenen Pfad. Gehen Sie auf diese Weise zunächst zum übergeordneten Verzeichnis der oberen Ebene zurück und erstellen Sie dann mit mkdir die nächste Ebene.

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-Tutorial

Das 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!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage