Heim >Backend-Entwicklung >PHP-Tutorial >Erweiterte PHP-Funktionen 2: Dateiverarbeitung
Die Dateiverarbeitung in PHP ist ebenfalls ein sehr wichtiges Modul. Der Hauptinhalt dieses Artikels ist eine Einführung in das Dateisystem in PHP.
Dateisystemzwecke
1. Die Projektverarbeitung ist untrennbar mit der Dateiverarbeitung verbunden
2. Dateien können zum Speichern von Daten für einen langen Zeitraum verwendet werden
3 .Cache erstellen, Dateivorgänge auf dem Server ausführen
Detaillierte Beschreibung der Dateisystemfunktionsnutzung
1 🎜>
is_dir – Bestimmt, ob der angegebene Dateiname ein Verzeichnis istfile_exists – Überprüfen Sie, ob die Datei oder das Verzeichnis existiert.is_file – Bestimmt, ob der angegebene Dateiname eine Datei ist
is_executable – Bestimmt, ob der angegebene Dateiname ausführbar ist
is_link – Bestimmen Sie, ob der angegebene Dateiname ein symbolischer Link ist.
is_readable – Bestimmen Sie, ob der angegebene Dateiname lesbar ist.
is_uploaded_file – Bestimmen Sie, ob die Datei über HTTP POST hochgeladen wurde
is_writable – Bestimmen Sie, ob der angegebene
Dateiname beschreibbar ist.is_writeable – Ein Alias von is_writable
2. Erhalten Sie dateibezogene Informationen
fileatime – Rufen Sie die letzte Zugriffszeit der Datei ab.
filectime – Rufen Sie die Inode-Änderungszeit der Datei ab
filegroup – Ruft die Gruppe der Datei ab
fileinode – Ruft den Inode der Datei ab
filemtime – Ruft die Dateiänderungszeit ab
fileowner – Ruft ab der Eigentümer der Datei
fileperms – Dateiberechtigungen abrufen
filesize – Dateigröße abrufen
filetype – Dateityp abrufen
Lass uns Schreiben Sie unten ein Beispiel, übergeben Sie den Dateinamen und drucken Sie die detaillierten Informationen aus.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
FunktiongetFileInfo($Dateiname){ if(!file_exists( $Dateiname)){ echo'文件'.($Dateiname).'不存在'; zurück; } if(is_file($filename)){ echo$Dateiname.'是一个文件'; } if(is_dir($filename)){ echo$Dateiname.'是一个目录'; } if(is_executable($filename)){ echo$Dateiname.'是可执行文件'; }else{ echo$ Dateiname.'不是可执行文件'; } if(is_readable($filename)){ Echo$Dateiname.'是可读的'; }else{ echo $Dateiname.'不是可读的'; } if(is_writable($ Dateiname)){ echo$Dateiname.'是可写入的'; }else{ echo$Dateiname.'不是可写入的'; } Die Größe der echo' Datei '.$Dateiname.' ist '. getFileSize(filesize($filename)).''; echo'Der Typ von '.$Dateiname.' ist '.Dateityp($Dateiname).''; echoDer Eigentümer der Datei „.$Dateiname.“ ist „.Dateibesitzer ($Dateiname).''; Echo ' Die letzte Zugriffszeit der Datei '.$Dateiname.' ist '.getTime(fileatime( $Dateiname)).''; Der Inode von 🎜>echo' Datei '.$Dateiname.' ist '.fileinode( $Dateiname).''; echo'Datei '.$Dateiname.' ist '.getTime(filemtime( $Dateiname)).''; echo' file '.$filename.' sind '.fileperms($Dateiname).''; }
Funktion getTime($Zeit){ RückgabeDatum('Y-m-d H:i:s',$Zeit); }Funktion getFileSize($size){ $dw='B'; if($size>=pow(2,40)){ >/ Leistung( 2,40) ,2); > }else if($size> ;=pow(2, 30)){ $Größe=rund($Größe/pow(2 ,30),2); $dw='TB'; }elseif($size>=pow(2 ,20)){ $Größe=rund( $Größe/Leistung(2,20),2); $dw='GB'; }elseif($Größe>=Leistung(2,10)){ $size=rund($Größe/pow(2,10),2); $dw ='MB'; } return$size.$dw; } getFileInfo('1.php'); |
Laufergebnisse
1.php ist eine Datei
1.php ist keine ausführbare Datei
1.php ist lesbar
1.php ist nicht beschreibbar
Die Größe der Datei 1.php beträgt 2 MB
Der Typ der Datei 1.php ist Datei
Der Besitzer der Datei 1.php ist 1000
Datei 1. Die letzte Zugriffszeit von PHP ist 04.03.2015 12:58:33
Der Inode der Datei 1.php ist 536185
Die Änderungszeit von Datei 1.php ist 04.03.2015 12:58:32
Die Berechtigungen der Datei 1.php sind 33204
3. Dateipfadbezogene Funktionen
Relativer Pfad: relativ zum oberen und unteren Verzeichnis des aktuellen Verzeichnisses
. Aktuelles Verzeichnis
.. Vorheriges Verzeichnis
Pfadtrennzeichen
Linux/Unix „/“
Windows „ ”
Unabhängig vom Betriebssystem unterstützt das Verzeichnistrennungssymbol von PHP / (Linux)
Absoluter Pfad: Er kann sich auf das Stammverzeichnis des Betriebssystems oder auf das Stammverzeichnis des Dokuments beziehen, in dem sich das befindet Website wird gespeichert.
Wenn sie im Serverpfad ausgeführt wird (ausgeführt durch die PHP-Dateiverarbeitungsfunktion ), bezieht sich das „Stammverzeichnis“ auf das Stammverzeichnis des Betriebssystems.
Wenn die Wenn das Programm ein heruntergeladener Client ist, kann beim Zugriff auf Dateien auf dem -Server nur über Apache darauf zugegriffen werden. Das „Stammverzeichnis“ bezieht sich auch auf das Dokumentstammverzeichnis
Drei verwandte Funktionen
Basisname – Gibt den Dateinamenteil des Pfads zurück.
Verzeichnisname – Gibt den Verzeichnisteil des Pfads
zurück pathinfo – Gibt die Dateipfadinformationen zurück
Zum Beispiel das folgende Beispiel
1
2
3
4
5
6
7
8
$url1="./aaa/bbb/index.php"; $url2="../www/yyy/login.rar"; $url3="c:/appserv /www/demo.html"; $url4= "http://localhost/yyy/ www.gif"; echo basename( $url1); echo basename($url2); echo basename($url3); echo basename($url4 ); |
|
Ergebnisse ausführen
index.php
login.rar
demo.html
www.gif
Es ist ersichtlich, dass die Funktion basename den Namen der Datei zurückgibt, also das letzte Element.
Werfen wir einen Blick auf die Verwendung von dirname
1
2
3
4
5
|
$url1 ="./aaa/bbb/index.php"; $ url2 $ url3
=
|
1 2
3
4
5
|
touch("./php.apahce"); //Datei erstellen Verknüpfung aufheben("C: /AppServ/www/xsphp/apache.php"); //Datei löschen umbenennen("./test.txt","d:/test2.txt") ; //Datei umbenennen copy("cache.txt","./cache5.txt"); // Datei kopierenchmod(" a.txt" ,755); //Dateiberechtigungen festlegen |
Berechtigungsbezogener Inhalt
Zum Beispielrwx gibt den Besitzer dieser Datei an r lesen w schreiben x ausführen
rwx gibt die Gruppe des Besitzers dieser Datei an r lesen w Schreiben Sie x und führen Sie
rwx aus. Andere Benutzer haben Berechtigungen für diese Datei r lesen w schreiben >Geben Sie den Dateinamen ein und erhalten Sie direkt die Textinformationen in der Datei. Der zurückgegebene Inhalt ist der Text in der Datei.
1
2
3
4
|
|
öffnet direkt den Inhalt in der 1.txt-Datei und gibt die Textinformationen in der Datei zurück.
Wenn die Datei nicht existiert, erscheint die Meldung
Warnung: file_get_contents(2.txt): Fehler beim Öffnen des Streams: Keine solche Datei oder kein solches VerzeichnisIn ähnlicher Weise kann die Datei auch eine Remote-Datei sein. Durch Übergabe der Parameter an http://www.qq.com
1
2
3
|
echofile_put_contents("2.txt",'abcd'); ?> |
1 2 3
|
|
1 2
3
4
5
|
< 🎜><🎜>$str=file("1.txt"); span ><🎜><🎜> var_dump ($str);<🎜><🎜> echocount($str);< / span><🎜><🎜>?> |
kann den Zeileninhalt in Form eines Arrays abrufen und die Anzahl der Zeilen ausgeben.
Nachteil: Der Inhalt des angegebenen Teils kann nicht gelesen werden.
4.fopen(filename,mode)
Dateiname ist der -Dateiname, der ein Pfad plus Name sein kann, oder eine Remote--Serverdatei.
Der Modus ist die Möglichkeit, eine Datei
im Textmodus öffnen. Hinweis:r im schreibgeschützten Modus zu öffnen kann auch schreiben.
w, im Schreibmodus öffnen. Wenn die Datei nicht vorhanden ist, erstellen Sie die Datei und schreiben Sie den Inhalt. Wenn die Datei vorhanden ist und ursprünglich Inhalt enthält, wird der gesamte Inhalt der Originaldatei gelöscht und dann geschrieben. Vorhandene wichtige Dateien öffnen)
w, zusätzlich zum Schreiben mit fwrite können Sie auch fread
a lesen, das im schreibgeschützten Modus geöffnet wird. Wenn die Datei nicht vorhanden ist, erstellen Sie die Datei und schreiben Sie den Inhalt . Wenn die Datei vorhanden ist und Originalinhalt vorhanden ist, wird der Originaldateiinhalt nicht gelöscht und neuer Inhalt wird an das Ende des Originaldateiinhalts geschrieben (anhängen)
a , Sie können auch fread
b öffnen. Dateien (Bilder, Filme)
t im Binärmodus öffnen, Dateien
r verfügt über Lese- und Schreibattribute, beginnend mit dem Dateiheader. Behalten Sie den nicht überschriebenen Inhalt in der Originaldatei bei. w verfügt über Lese- und Schreibattribute. Wenn die Datei beim Schreiben vorhanden ist, wird sie gelöscht und geschrieben von Grund auf.gibt eine Dateiressource zurück 5.fwrite(file,content)Dateischreibfunktion, Datei ist eine Dateiressource, verwenden Sie fopen
Erhalten von die Funktion, Inhalt ist der geschriebene Inhalt. Identisch mit der fputs-Funktion.
Zum Beispiel
1
2
3
4
5
6
7 8
9
|
Die obige Dateigrößenmethode kann jedoch nur die lokale Dateigröße ermitteln, und zum Lesen entfernter Dateien ist eine andere Methode erforderlich. Zum Beispiel
gibt das Ergebnis 8893 aus. Wir können die Quelldatei überprüfen, um zu sehen, wie viele Zeilen sie insgesamt enthält, und sie überprüfen. 7.fgetc(file) Es ist der fgets-Methode sehr ähnlich. Datei ist eine Dateiressource und liest jedes Mal Zeichen. Wir lesen zum Beispiel, wie viele Zeichen es auf der Homepage von Tencent gibt.
Der obige Code gibt alle Zeichen aus. 8.ftell(file) ftell gibt die Zeigerposition der aktuell gelesenen Datei zurück, file ist die Dateiressource und das von fopen zurückgegebene Objekt. 9.fseek(file,offset,whence) file Der Dateisystemzeiger ist eine Ressource, die normalerweise von fopen() erstellt wird. Offset Offset. Um an die Position vor dem Ende der Datei zu gelangen, übergeben Sie einen negativen Wert für Offset und setzen Sie wherece auf SEEK_END. whherce
10.rewind($file) Zurück zum Dateikopf: Datei ist eine Dateiressource Zum Beispiel
Laufergebnis:
11.flock(file,operation[,wouldblock]) file Dateiressourcenzeiger, bei dem es sich um eine Ressource (Ressource) handelt, die normalerweise von fopen() erstellt wird. operation operation kann einer der folgenden Werte sein:
Wenn Sie flock() nicht möchten Wird im gesperrten Zustand ausgeführt. Wenn blockiert, ist es LOCK_NB (noch nicht unter Windows unterstützt). Wenn die Sperre blockieren würde (im Fall des EWOULDBLOCK-Fehlercodes), ist das optionale Dritte Parameter wird auf TRUE gesetzt (nicht unterstützt unter Windows) Zum Beispiel
Stellungnahme: 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 Vorheriger Artikel:PHP-Sitzungsverfolgung zwei (42)Nächster Artikel:PHP-Sitzungsverfolgung zwei (42) In Verbindung stehende ArtikelMehr sehen
|