PHP Tutorial: PHP Verzeichnis und Dateioperationen

Quelle: Internet
Autor: Benutzer

Erste Einführung

In jedem Computergerät die Datei ist eine notwendige Objekt und in Web-Programmierung, der Betrieb der Datei wurde ein Kopfschmerz für Web-Programmierer und den Betrieb der Datei in das CMS-System Dies ist notwendig, sehr nützlich, wir oft die Generation der Dateiverzeichnisse, Dateibearbeitung (Ordner) und andere Operationen auftreten, Jetzt mache ich eine ausführliche Zusammenfassung dieser Funktionen in PHP und ein Beispiel Demonstration, wie man sie benutzt. für eine detaillierte Beschreibung der entsprechenden Funktion, konsultieren die PHP Handbuch. hier ist eine Zusammenfassung der der Fokus und Orte zu beachten. (Dies ist nicht im PHP-Handbuch.)

II. Katalogvorgang

Die erste besteht darin, eine Funktion lesen Sie aus dem Verzeichnis, Opendir, Englisch, Readdir einzuführen, Closedir (), wenn verwendet wird zuerst das Dateihandle öffnen und dann die Iteration aufgeführt:

≪? Php
$Base _dir = "Liste /";
$Fso = Opendir ($base _dir);
Echo $base _dir." (A) ";"
Während ($flist = Readdir ($FSO)) {}
Echo $flist." (A) ";"
}
Closedir ($FSO)
? ≫

Dies ist das Programm, das gibt das Verzeichnis der Dateien unter dem Dateiverzeichnis (0 Dateien false zurückgegeben werden).

Manchmal müssen Sie die Verzeichnisinformationen wissen, können Sie DirName ($path) und Basename ($path), bzw., zurückkehren, die Verzeichnis-Teil des Pfades und der Dateiname Namensteil, kann sein verwendet Disk_free_space ($path) zurück um zu sehen, den Raum freier Speicherplatz.

Erstellen Sie einen Befehl:

Mkdir ($path, 0777)

, 0777 ist ein Berechtigungscode und die Umask () Funktionseinstellungen finden Sie unter-Fenster

RmDir ($path)

Der Pfad zu der Datei $path werden gelöscht.

Dir-Directory-Klasse ist auch eine wichtige Klasse für Bearbeitung von Datei-Verzeichnisse mit 3 Methoden lesen, zurückspulen, in der Nähe, was ist eine objektorientierte Klasse, die verwendet zuerst ein Dateihandle öffnen und lesen Sie es als ein Zeiger. hier das PHP-Manual schauen:

≪? Php
$D = Dir ("/ Etc/php5");
Echo "zu behandeln:". $D -> Griff. "N";
Echo "Pfad:". $D -> Pfad. "N";
Während (false! == ($entry = $d -> Read ()) {}
Echo $entry." N ";"
}
$D -> close ();
? ≫

Ausgang:

Griff: Resource ID #2
Pfad: / ETC/PHP5
.
..
Apache
CGI
CLI

Die Eigenschaften der Datei sind auch sehr wichtig, auch die Erstellungszeit, die letzte Änderungszeit, der Besitzer, die Dateigruppe, die Art, Größe und So weiter.

Hier konzentrieren wir uns auf Datei-Operation.

III. die Dateioperation

A, lesen Sie die Datei

Die erste ist eine Datei zu sehen, wenn Sie (Berechtigungsprobleme) lesen können, oder wenn es Nein, können wir die Is_readable-Funktion verwenden, um Informationen zu erhalten.

≪? Php
$File = "dirlist.php";
Wenn (Is_readable ($file) == False) {}
Sterben ("Datei existiert nicht oder kann nicht gelesen werden");
} Else {}
Echo 'Existenz';
}
? ≫

Die Funktion, die festlegt, ob eine Datei vorhanden ist auch File_exists (siehe unten), aber das ist natürlich nicht Is_readable umfassende. wenn eine Datei vorhanden ist, können Sie die

≪? Php
$File = "filelist.php";
Wenn (File_exists ($file) == False) {}
Sterben ("Datei existiert nicht");
}
$Data = File_get_contents ($file);
Echo Htmlentities ($data);
? ≫

Allerdings die File_get_contents Funktion wird auf der niedrigeren Version nicht unterstützt, können Sie erstellen Sie zunächst ein Handle für die Datei, und dann alles mit dem Zeiger lesen:

$Fso = Fopen ($cacheFile, 'R');
$Data = Fread ($fso, FileSize ($cacheFile));
Fclose ($FSO);

Es gibt auch eine Möglichkeit, binäre Dateien zu lesen:

$Data = implode (", Datei ($file));

B. eine Datei schreiben

Und lesen Sie die Datei auf die gleiche Weise zuerst sehen, ob sie geschrieben werden können:

≪? Php
$File = "dirlist.php";
Wenn (Is_writable ($file) == False) {}
Sterben ("Ich bin Huhn Haare, ich kann nicht");
}
? ≫

Wenn Sie schreiben können, können Sie schreiben, über die File_put_contents-Funktion:

≪? Php
$File = "dirlist.php";
Wenn (Is_writable ($file) == False) {}
Sterben ("Ich bin Huhn Haare, ich kann nicht");
}
$Data = "Ich bin verächtlich, ich will";
File_put_contents ($file, $data);
? ≫

File_put_contents Funktion in php5 neu eingeführte Funktion (weiß nicht, ob es gibt eine Funktion Function_exists zuerst beurteilen) die niedrigere Version von PHP ist nicht verfügbar, können Sie die folgenden Methoden:

$F = Fopen ($file, 'w');
Fwrite ($f, $data);
Fclose ($f);

Ersetzen Sie ihn.

Manchmal müssen Sie eine Datei zu sperren, wenn Sie es schreiben, und dann schreiben:

Funktion Cache_page ($pageurl, $pagedata) {}
Wenn (! $fso = Fopen ($pageurl, 'W') {}
-> $This warnt ("Unable to Cache-Datei zu öffnen.") ;/ / Trigger_error
Return false;
}
Wenn (! Herde ($fso, Lock_ex) {/ / Lock_nb, Zeile sperren
-> $This warnt ("Unable to zwischengespeicherten Dateien zu sperren.") ;/ / Trigger_error
Return false;
}
Wenn (! Fwrite ($fso, $pagedata) {//write Byte Drosselung, Serialize schreibt in andere Formate
-> $This warnt ("Unable to schreiben in Datei speichern...") ;/ / Trigger_error
Return false;
}
Herde ($fso, Lock_un); //release Sperre
Fclose ($FSO);
Gibt true zurück;
}

C, kopieren, Löschen von Dateien

PHP, Dateien zu löschen ist ganz einfach, mit der Verknüpfung aufheben-Funktion einfache Bedienung:

≪? Php
$File = "dirlist.php";
$Result = @unlink ($file);
Wenn ($result == False) {}
Echo "Mücken losgeworden";
} Else {}
Echo "kann nicht durchkommen";
}
? ≫

Dose.

Kopieren von Dateien ist auch ganz einfach:

≪? Php
$File = "yang.txt";
$Newfile = "ji.txt"; # Diese Datei übergeordneten Ordner muss schreiben
Wenn (File_exists ($file) == False) {}
Sterben ("Probe ist nicht auf der Linie kann nicht kopiert werden");
}
$Result = Copy ($file, $newfile);
Wenn ($result == False) {}
Echo "Kopie Speicher OK";
}
? ≫

Sie können einen Ordner mit dem umbenennen () Funktion., die alle anderen Vorgänge erreicht werden können, durch die Kombination dieser Funktionen umbenennen.

D, Get Dateieigenschaften

Ich sage ein paar allgemeine Funktionen:

Erhalten Sie die letzte Änderungszeit:

≪? Php
$File = "test.txt";
Echo Datum ("R", Filemtime ($file));
? ≫

Kehrt einen Zeitstempel, der Unix, sagt die im caching-Techniken häufig benutzt wird.

Im Zusammenhang mit immer die letzten aufgerufenen Zeit Fileatime (), Filectime (), wenn die Datei Berechtigungen, Eigentümer, Metadaten in allen Gruppen oder andere Inode aktualisiert werden, kehrt Fileowner ()-Funktion den Dateieigentümer

$Owner = Posix_getpwuid (Fileowner ($file));

(Non-Window-System), Ileperms () erhält die Berechtigungen für die Datei

≪? Php
$File = "dirlist.php";
$Perms = Substr (Sprintf ('%o", Fileperms ($file)),-4);
Echo $perms;
? ≫

(Dateigröße) gibt die Anzahl der Bytes der Dateigröße:

≪? Php

Ähnliche Ausgabe: somefile.txt:1024 Bytes

$Filename = "somefile.txt";
Echo $filename. ': ' . FileSize ($filename). "Bytes";

? ≫

Erhält alle Informationen über die Datei gibt es eine Funktion-Stat ()-Funktion, die das Array zurückgibt:

≪? Php
$File = "dirlist.php";
$Perms = Stat ($file);
Var_dump ($perms);
? ≫

Dieser Schlüssel entspricht, was im Detail, gefunden werden kann, die hier nicht mehr erweitert wird.

IV. Schlussbemerkungen

Über ich kurz zusammengefasst einige Datei-Operationen, wenn Sie die oben aufgeführten Funktionen beherrschen ist keine große Problem in der Bedienung, PHP-Datei-Operation Funktionsänderungen relativ schnell, ist jetzt sehr mächtig, die Datei dieses Teil ist auch ein sehr wichtiger Teil von PHP zu lernen, ich hoffe, nicht zu ignorieren.



Kontaktiere uns

Die Inhaltsquelle dieser Seite ist aus dem Internet, und vertritt nicht die Meinung von Alibaba Cloud; auf dieser Seite erwähnte Produkte und Dienstleistungen haben keine Beziehung zu Alibaba Cloud. Wenn der Inhalt der Seite Ihrer Meinung nach verwirrend ist, schreiben sie uns bitte eine E-Mail. Wir werden das Problem innerhalb von 5 Tagen nach Erhalt Ihrer E-Mail bearbeiten.

Wenn Sie Fälle von Plagiaten aus der Community feststellen, senden Sie bitte eine E-Mail an info-contact@alibabacloud.com und legen Sie entsprechende Beweise vor. Ein Mitarbeiter wird Sie innerhalb von 5 Werktagen kontaktieren.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.