PHP bietet eine Reihe von E/A-Funktionen, mit denen wir die von uns benötigten Funktionen problemlos implementieren können, einschließlich Dateisystemoperationen und Verzeichnisoperationen (z. B. „Kopieren“). Im Folgenden stellt Ihnen der Herausgeber von Brothers in Arms PHP Training die grundlegenden Vorgänge zum Lesen und Schreiben von Dateien vor: (1) Dateien lesen
(2)
Dateien schreiben ( 3) An Dokument anhängen.
Das Folgende ist ein Artikel über grundlegende Dateilese- und -schreibvorgänge. Nachdem ich diesen Artikel gelesen habe, habe ich ihn hier veröffentlicht, um ihn mit allen zu teilen:
Dateien lesen:
PHP-Code:
1.
2.
3. $file_name ="data.dat"
4. // Absoluter Pfad der zu lesenden Datei: homedata.dat
5.
6. $file_pointer =fopen($file_name, "r");
7. // Öffnen Sie die Datei, 8. „r“ ist ein Modus, 9. Oder die Operationsmethode, die wir ausführen möchten, 10. Einzelheiten finden Sie in der Einleitung weiter unten in diesem Artikel
11.
12. $file_read =fread($file_pointer, filesize($file_name));
13. // Den Dateiinhalt über den Dateizeiger lesen
15.
16. fclose($file_pointer);
17. // Schließe die Datei
18.
19. print „Der Inhalt der gelesenen Datei ist: $file_read";
20. // Dateiinhalt anzeigen
21. ?>
22.
Datei schreiben:
PHP-Code:
1.
2.
3. $file_name ="data.dat"
4. // Absolut Pfad: homedata.dat
5.
6. $file_pointer =fopen($file_name, "w");
7. // "w" ist ein Modus , 8. Siehe unten für Details
9.
10. fwrite($file_pointer,"what you wanna write");
11. // Zuerst die Datei ausschneiden Schneiden Sie 12. auf 0 Byte Größe, 13. Dann schreiben Sie
14.
15. fclose($file_pointer);
16. // Ende
17.
18. print „Daten erfolgreich in Datei geschrieben“
19.
20. ?>
21.
An das Ende der Datei anhängen:
PHP-Code:
1.
2.
3. $file_name =" data .dat";
4. // Absoluter Pfad: homedata.dat
5.
6. $file_pointer =fopen($file_name, "a");
7. // "w"-Modus
8.
9. fwrite($file_pointer,"what you wanna append");
10 . // Nein 11. Schneiden Sie die Datei 12. in 0 Bytes, 13. Hängen Sie die Daten an das Ende der Datei an
14.
15. fclose($file_pointer); >
16. // Ende
17.
18. print „Daten erfolgreich an Datei angehängt“
19.
20. ?>
21.
Das Obige ist nur eine kurze Einführung, im Folgenden werden wir einige tiefergehende besprechen.
Manchmal schreiben mehrere Personen (am häufigsten auf Websites mit hohem Datenverkehr), was dazu führt, dass nutzlose Daten in die Datei geschrieben werden, zum Beispiel:
Inhalt der Datei info.file Wie folgt – >
|1|Mukul|15|Männlich|Indien (n)
|2|Linus|31|Männlich|Finnland(n)
Jetzt sind es zwei Personen Registrieren Sie sich gleichzeitig und verursachen Sie Dateischaden ->
info.file ->
|1|Mukul|15|Male|India
|2|Linus|31 |Male|. Finnland
|3|Rob|27|Male|USA|.
Bill|29|Male|USA
Im obigen Beispiel, wenn PHP Robs Informationen schreibt Zu diesem Zeitpunkt begann Bill zufällig mit dem Schreiben. Zu diesem Zeitpunkt kam es vor, dass „n“ in Robs Datensatz geschrieben werden musste, was dazu führte, dass die Datei beschädigt wurde.
Natürlich möchten wir nicht, dass das passiert, also schauen wir uns die Dateisperre an:
PHP-Code:
1.
2 .
3. $file_name ="data.dat";
4.
5. $file_pointer =fopen($file_name, "r"); >
6.
7. $lock =flock($file_pointer, LOCK_SH);
8. // Ich verwende 4.0.2, 9. Also verwende LOCK_SH, 10. Du kann Es muss direkt geschrieben werden als 1. , filesize($file_name));
15. $lock =flock($file_pointer, LOCK_UN);
16. // Wenn die Version ist kleiner als PHP4.0.2, 17. Verwenden Sie 3 anstelle von LOCK_UN
18.
19. }
20.
21. fclose($file_pointer);
22.
23. print „Der Dateiinhalt ist $file_read“ ;
24.
25. ?>
26.
Im obigen Beispiel, wenn beide Dateien read.php und read2.php müssen Speichern Sie die Datei, dann können Sie sie lesen. Wenn ein Programm jedoch schreiben muss, muss es warten, bis der Lesevorgang abgeschlossen ist und die Datei freigegeben wird.
PHP-Code:
1.
2.
3. $file_name ="data.dat"
4.
5. $file_pointer =fopen($file_name, "w");
6.
7. $lock =flock($file_pointer, LOCK_EX) ;
8. // Wenn die Version niedriger als PHP4.0.2 ist, 9. Ersetzen Sie LOCK_EX durch 2
10.
11. if ($lock) {
12.
13. fwrite($file_pointer,"what you want to write");
14. flock($file_pointer,LOCK_UN);
15. // Wenn die Version niedriger als PHP4.0.2 ist, 16. LOCK_UN durch 3 ersetzen
17. ($file_pointer);
21.
22. print „Daten erfolgreich in Datei geschrieben“;
23.
24. ?>
25.
Obwohl der „w“-Modus zum Überschreiben verwendet wird Dateien, ich glaube nicht, dass es anwendbar ist.
PHP-Code:
1.
2.
3. $file_name ="data.dat"
4.
5. $file_pointer =fopen($file_name, "a");
6.
7. $lock =flock($file_pointer, LOCK_EX) ;
8. // Wenn die Version niedriger als PHP4.0.2 ist, 9. Ersetzen Sie LOCK_EX durch 2
10.
11. if ($lock) {
12.
13. fseek($file_pointer, 0,SEEK_END);
14. // Wenn die Version kleiner als PHP4.0RC1 ist, 15. use fseek( $file_pointer, filsize( $file_name));
16.
17. fwrite($file_pointer,"what you want to write");
18. flock($ file_pointer,LOCK_UN);
19. // Wenn die Version niedriger als PHP4.0.2 ist, 20. LOCK_UN durch 3 ersetzen
21.
22. }
23.
24. fclose($file_pointer);
25.
26. print „Daten erfolgreich in Datei geschrieben“ 🎜> 28. ? >
29.
Hmmm..., das Anhängen von Daten unterscheidet sich ein wenig von anderen Vorgängen, das heißt FSEEK. Es ist immer eine gute Angewohnheit, zu bestätigen, dass der Dateizeiger am Ende steht der Datei.
Wenn es sich um ein Windows-System handelt, muss der obigen Datei ein '' vorangestellt werden.
FLOCK Sonstiges:
Flock() erst nach dem Öffnen der Datei . In der obigen Spalte ist die Datei nach dem Öffnen gesperrt. Der Inhalt der Datei ist nun nur noch der Inhalt zu diesem Zeitpunkt und spiegelt nicht die Ergebnisse anderer Programmoperationen wider. Daher sollte fseek nicht nur zum Anhängen von Dateien verwendet werden Operationen, sondern auch für Leseoperationen.
(Die Übersetzung hier ist vielleicht nicht sehr genau, aber ich denke, ich verstehe, worauf es ankommt).
Über den Modus:
'r' – Im schreibgeschützten Modus öffnen, der Dateizeiger wird am Anfang der Datei platziert
'r' – Öffnen in Lese-/Schreibmodus, der Dateizeiger wird im Dateikopf platziert
'w' – Nur zum Schreiben geöffnet, der Dateizeiger wird im Dateikopf platziert, die Datei wird auf 0 Bytes gekürzt, wenn die Datei nicht existiert, versuchen Sie die Datei zu erstellen
'w ' - lesen Zum Schreiben öffnen, der Dateizeiger wird am Anfang der Datei platziert, die Dateigröße wird auf 0 Bytes reduziert, wenn die Datei nicht vorhanden ist existiert, versuchen Sie, die Datei
'a' zu erstellen – Nur zum Schreiben geöffnet, der Dateizeiger wird am Ende der Datei platziert. Wenn die Datei nicht existiert, versuchen Sie, die Datei
'a' – zum Lesen und Schreiben geöffnet, der Dateizeiger wird am Ende der Datei platziert, wenn die Datei nicht existiert, versuchen Sie, die Datei zu erstellen
Erstellen Sie übrigens das Dateiverzeichnis Code
//Erstellen Sie ein Verzeichnis ähnlich „../../../xxx/xxx.txt“
Funktion erstelltirs($path,$mode = 0777) //mode 077
{
$dirs = explosion('/',$path);
$pos = strrpos($path,"."); ?? >
}
else {
$subamount=1;
}
für ($c=0;$c
$thispath="";
for ($cc=0; $cc
$thispath.=$dirs[$cc].'/' ;
}
if(!file_exists($thispath)) {
//print "$thispath
"; mode);//Die mkdir-Funktion erstellt ein Verzeichnis /xxxx/xxxx",);
//Die ursprüngliche Funktion verwendete $GLOBALS["dirseparator"] und ich habe es in '/'
functionrecur_mkdirs($path, $mode = 0777) //mode 0777
{
//$GLOBALS["dirseparator"]
$dirs =explode($ GLOBALS["dirseparator"],$path);
$pos = strrpos($path,"."
if ($pos === false) { //note: drei Gleichheitszeichen
// nicht gefunden, bedeutet Pfadenden in einem Verzeichnis, nicht in einer Datei
$subamount=0
else {
$subamount=1; 🎜> }
Dies sind nur einige grundlegende Dateioperationscodes, die ich hier poste, in der Hoffnung, andere zu inspirieren