Ανοίγοντας/Διαβάζοντας/Κλείνοντας αρχεία με PHP

Σε αυτή την ενότητα, σας εξηγούμε πώς να ανοίξετε, να διαβάσετε και να κλείσετε αρχεία στο διακομιστή.

Ανοίγοντας αρχείο με PHP - fopen()

Η καλύτερη μέθοδος για να ανοίξετε αρχείο είναι μέσω της συνάρτησης fopen(). Αυτή η συνάρτηση σας παρέχει περισσότερες επιλογές από τη συνάρτηση readfile().

Στο μάθημα, θα χρησιμοποιήσουμε το κείμενο αρχείο "webdictionary.txt":

AJAX = Συγχρονισμένος Λογισμικός και XML
CSS = Καταβατήρια Στυλ Σελίδων
HTML = Υπερ Τекстου Σημειωτική Γλώσσα
PHP = PHP Υπολογιστή Hypertext Preprocessor
SQL = Λειτουργική Γλώσσα Ερωτημάτων
SVG = Εκπτυξιμότατα Σκαλίσιμα Γραφικά
XML = Εξέχουσα Μάρτυρα Γλώσσα

Ο πρώτος παράμετρος της συνάρτησης fopen() περιέχει το όνομα του αρχείου που πρέπει να ανοίξει, η δεύτερη παράμετρος καθορίζει το στυλ ανοίγματος του αρχείου. Αν η συνάρτηση fopen() δεν μπορέσει να ανοίξει το καθορισμένο αρχείο, το παρακάτω παράδειγμα θα δημιουργήσει ένα μήνυμα:

Παράδειγμα

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Αδυναμία ανοίγματος αρχείου!");
echo fread($myfile, filesize("webdictionary.txt"));
fclose($myfile);
?>

Εκτέλεση Παράδειγμα

Συμβουλή:Συνεχίζουμε με την ανάγνωση της συνάρτησης fread() και της fclose().

Το αρχείο θα ανοίξει με ένα από τα παρακάτω στυλ:

Στυλ Περιγραφή
r Άνοιγμα αρχείου για ανάγνωση μόνο. Ο δείκτης αρχείου ξεκινάει στο κεφάλι του αρχείου.
w Άνοιγμα αρχείου για γραφή μόνο. Οι υπάρχουσες δεδομένα στο αρχείο θα διατηρηθούν. Ο δείκτης αρχείου ξεκινάει στο κεφάλι του αρχείου. Δημιουργία νέου αρχείου αν δεν υπάρχει.
a Άνοιγμα αρχείου για γραφή μόνο. Οι υπάρχουσες δεδομένα στο αρχείο θα διατηρηθούν. Ο δείκτης αρχείου ξεκινάει στο τέλος του αρχείου. Δημιουργία νέου αρχείου αν δεν υπάρχει.
x Δημιουργία νέου αρχείου για γραφή μόνο. Επιστρέφει FALSE και σφάλμα αν το αρχείο υπάρχει ήδη.
r+ Άνοιγμα αρχείου για ανάγνωση/εγγραφή, ο δείκτης αρχείου ξεκινάει στο κεφάλι του αρχείου.
w+ Άνοιγμα αρχείου για ανάγνωση/εγγραφή. Οι υπάρχουσες δεδομένα στο αρχείο θα διατηρηθούν. Ο δείκτης αρχείου ξεκινάει στο κεφάλι του αρχείου. Δημιουργία νέου αρχείου αν δεν υπάρχει.
a+ Άνοιγμα αρχείου για ανάγνωση/εγγραφή. Οι υπάρχουσες δεδομένα στο αρχείο θα διατηρηθούν. Ο δείκτης αρχείου ξεκινάει στο τέλος του αρχείου. Δημιουργία νέου αρχείου αν δεν υπάρχει.
x+ Δημιουργία νέου αρχείου για ανάγνωση/εγγραφή. Επιστρέφει FALSE και σφάλμα αν το αρχείο υπάρχει ήδη.

Ανάγνωση αρχείου με PHP - fread()

Η συνάρτηση fread() διαβάζει το ανοιχτό αρχείο.

Ο πρώτος παράμετρος της συνάρτησης fread() περιέχει το όνομα του αρχείου που πρέπει να διαβαστεί, η δεύτερη παράμετρος καθορίζει το μέγιστο αριθμό των βυθισμάτων που πρέπει να διαβαστούν.

Η παρακάτω PHP κώδικας διαβάζει το αρχείο "webdictionary.txt" μέχρι το τέλος:

fread($myfile, filesize("webdictionary.txt"));

Κλείσιμο αρχείου με PHP - fclose()

Η συνάρτηση fclose() χρησιμοποιείται για το κλείσιμο του ανοιχτού αρχείου.

Σημείωση:Η καλή πρακτική είναι να κλείνετε όλα τα αρχεία μετά τη χρήση τους. Δεν θέλετε να ανοίξετε αρχεία που να καταναλώνουν πόρους του διακομιστή σας.

Η συνάρτηση fclose() χρειάζεται το όνομα του αρχείου που πρέπει να κλείσει (ή την μεταβλητή που περιέχει το όνομα του αρχείου):

<?php
$myfile = fopen("webdictionary.txt", "r");
// Κώδικας που θα εκτελεστεί...
fclose($myfile);
?>

Ανάγνωση γραμμής αρχείου με PHP - fgets()

Η συνάρτηση fgets() χρησιμοποιείται για την ανάγνωση μιας γραμμής από το αρχείο.

Η παρακάτω παράδειγμα εκτυπώνει την πρώτη γραμμή του αρχείου "webdictionary.txt":

Παράδειγμα

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Αδυναμία ανοίγματος αρχείου!");
echo fgets($myfile);
fclose($myfile);
?>

Εκτέλεση Παράδειγμα

Σημείωση:Μετά την κλήση της συνάρτησης fgets(), ο δείκτης αρχείου θα μετακινηθεί στη γραμμή που ακολουθεί.

Ελέγχος Τέλους Αρχείου PHP - feof()

Η συνάρτηση feof() ελέγχει αν έχει φτάσει στο τέλος του αρχείου (EOF).

Η feof() είναι πολύ χρήσιμη για την περιήγηση δεδομένων άγνωστης μήκους.

Το παρακάτω παράδειγμα διαβάζει το αρχείο "webdictionary.txt" γραμμή προς γραμμή μέχρι το τέλος του αρχείου:

Παράδειγμα

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Αδυναμία ανοίγματος αρχείου!");
// Εκτύπωση γραμμής μέχρι το τέλος του αρχείου
while(!feof($myfile)) {
  echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>

Εκτέλεση Παράδειγμα

Ανάγνωση μοναδικού χαρακτήρα από το PHP - fgetc()

Η συνάρτηση fgetc() χρησιμοποιείται για την ανάγνωση μοναδικού χαρακτήρα από το αρχείο.

Το παρακάτω παράδειγμα διαβάζει το αρχείο "webdictionary.txt" χαρακτήρα προς χαρακτήρα μέχρι το τέλος του αρχείου:

Παράδειγμα

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Αδυναμία ανοίγματος αρχείου!");
// Εκτύπωση μοναδικού χαρακτήρα μέχρι το τέλος του αρχείου
while(!feof($myfile)) {
  echo fgetc($myfile);
}
fclose($myfile);
?>

Εκτέλεση Παράδειγμα

Σημείωση:Μετά την κλήση της συνάρτησης fgetc(), ο δείκτης αρχείου θα μετακινηθεί στον επόμενο χαρακτήρα.

Εγχειρίδιο Αναφοράς PHP Filesystem

Για πλήρες εγχειρίδιο αναφοράς του PHP Filesystem, επισκεφθείτε το CodeW3C.com που παρέχει Εγχειρίδιο Αναφοράς PHP Filesystem.