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:
, 0777 ist ein Berechtigungscode und die Umask () Funktionseinstellungen finden Sie unter-Fenster
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.