PHP File() Handling & Functions

⚡ Έξυπνη Σύνοψη

Η επεξεργασία αρχείων σε PHP χρησιμοποιεί ένα πλούσιο σύνολο ενσωματωμένων συναρτήσεων για τη δημιουργία, ανάγνωση, εγγραφή, αντιγραφή και διαγραφή αρχείων στον διακομιστή. Αυτή η αναλυτική παρουσίαση καλύπτει τις συναρτήσεις file_exists, fopen και τις λειτουργίες του, fwrite, fclose, fgets, copy, unlink και file_get_contents με πρακτικά παραδείγματα.

  • 📄 Τι αποθηκεύουν αρχεία: Τα αρχεία περιέχουν ρυθμίσεις διαμόρφωσης, αρχεία καταγραφής και απλά δεδομένα, παρέχοντας μια φθηνή επιλογή μόνιμης αποθήκευσης σε σύγκριση με μια βάση δεδομένων.
  • 🔍 Έλεγχος αρχείων: Η συνάρτηση file_exists() επιβεβαιώνει εάν ένα αρχείο υπάρχει πριν το διαβάσετε ή το δημιουργήσετε, αποφεύγοντας σφάλματα.
  • 📂 Άνοιγμα Αρχείων: Η συνάρτηση fopen() ανοίγει ένα αρχείο σε μια λειτουργία όπως r, w ή a, η οποία ελέγχει την ανάγνωση, την εγγραφή και την προσθήκη.
  • ✍️ Συγγραφή και Κλείσιμο: Η fwrite() στέλνει δεδομένα στον δείκτη χειρισμού αρχείου και η fclose() απελευθερώνει τον δείκτη χειρισμού όταν ολοκληρωθεί η εργασία.
  • 📖 Ανάγνωση αρχείων: Η fgets() διαβάζει μία γραμμή κάθε φορά, ενώ η file_get_contents() επιστρέφει ολόκληρο το αρχείο ως μία μόνο συμβολοσειρά.
  • 🗂️ Αντιγραφή και διαγραφή: Η συνάρτηση copy() αντιγράφει ένα αρχείο σε μια νέα διαδρομή και η συνάρτηση unlink() διαγράφει οριστικά ένα αρχείο από τον διακομιστή.
  • 🤖 AI Assist: Τα εργαλεία τεχνητής νοημοσύνης μπορούν να δημιουργήσουν κώδικα ανάλυσης αρχείων και να επιλύσουν σφάλματα δικαιωμάτων ή αποτυχίας ανοίγματος ροής γρήγορα.

Επεξεργασία αρχείων PHP

Τι είναι ένα Αρχείο;

Ένα αρχείο είναι απλώς ένας πόρος για την αποθήκευση πληροφοριών σε έναν υπολογιστή.

Τα αρχεία χρησιμοποιούνται συνήθως για την αποθήκευση πληροφοριών όπως:

  • Ρυθμίσεις διαμόρφωσης ενός προγράμματος
  • Απλά δεδομένα όπως ονόματα επαφών σε σύγκριση με αριθμούς τηλεφώνου.
  • Εικόνες, φωτογραφίες, φωτογραφίες και παρόμοια μέσα.

Υποστήριξη μορφών αρχείων PHP

Οι λειτουργίες αρχείων PHP υποστηρίζουν ένα ευρύ φάσμα μορφών αρχείων που περιλαμβάνουν:

  • File.txt
  • File.log
  • File.custom_extension, δηλαδή file.xyz
  • File.csv
  • File.gif, file.jpg και παρόμοιες μορφές εικόνας

Τα αρχεία είναι χρήσιμα σε διάφορες περιπτώσεις:

  • Παρέχουν μια μόνιμη, οικονομικά αποδοτική λύση αποθήκευσης δεδομένων για απλά δεδομένα, σε σύγκριση με βάσεις δεδομένων που απαιτούν άλλο λογισμικό και δεξιότητες για τη διαχείριση συστημάτων DBMS.
  • Θέλετε να αποθηκεύσετε απλά δεδομένα, όπως αρχεία καταγραφής διακομιστή, για μελλοντική ανάκτηση και ανάλυση.
  • Θέλετε να αποθηκεύσετε τις ρυθμίσεις του προγράμματος, π.χ. program.ini

Συναρτήσεις αρχείων PHP

Η PHP παρέχει έναν βολικό τρόπο εργασίας με αρχεία μέσω της πλούσιας συλλογής ενσωματωμένων συναρτήσεων.

Operaσυστήματα ting όπως Windows και macOS δεν κάνουν διάκριση πεζών-κεφαλαίων, ενώ Linux or Unix Τα λειτουργικά συστήματα κάνουν διάκριση πεζών-κεφαλαίων.

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

Ας δούμε τώρα μερικές από τις πιο συχνά χρησιμοποιούμενες συναρτήσεις αρχείων PHP.

Συνάρτηση PHP file_exists().

Αυτή η συνάρτηση χρησιμοποιείται για να προσδιορίσει εάν ένα αρχείο υπάρχει ή όχι.

  • Είναι χρήσιμο όταν θέλουμε να μάθουμε αν ένα αρχείο υπάρχει πριν το επεξεργαστούμε.
  • Μπορείτε επίσης να χρησιμοποιήσετε αυτήν τη λειτουργία όταν δημιουργείτε ένα νέο αρχείο και θέλετε να βεβαιωθείτε ότι το αρχείο δεν υπάρχει ήδη στον διακομιστή.

Η συνάρτηση file_exists έχει την ακόλουθη σύνταξη.

<?php
file_exists($filename);
?>

ΕΔΩ,

  • Το “file_exists()” είναι η συνάρτηση PHP που επιστρέφει true αν το αρχείο υπάρχει και false αν δεν υπάρχει.
  • Το "$filename" είναι η διαδρομή και το όνομα του αρχείου που θα ελεγχθεί

Ο παρακάτω κώδικας χρησιμοποιεί τη συνάρτηση file_exists για να προσδιορίσει εάν το αρχείο my_settings.txt υπάρχει.

<?php
if (file_exists('my_settings.txt'))
{
echo 'file found!';
}
else
{
echo 'my_settings.txt does not exist';
}
?>

Αποθηκεύστε τον παραπάνω κώδικα σε ένα αρχείο με όνομα file_function.php. Υποθέτοντας ότι αποθηκεύσατε το αρχείο στον φάκελο phptuts στο htdocs, ανοίξτε το URL http://localhost/phptuts/file_function.php στο πρόγραμμα περιήγησής σας. Θα λάβετε τα ακόλουθα αποτελέσματα.

Συνάρτηση PHP file_exists().

Συνάρτηση PHP fopen().

Η συνάρτηση fopen χρησιμοποιείται για το άνοιγμα αρχείων. Έχει την ακόλουθη σύνταξη.

<?php
fopen($file_name,$mode,$use_include_path,$context);
?>

ΕΔΩ,

  • Το "fopen" είναι η λειτουργία ανοιχτού αρχείου PHP
  • "$file_name" είναι το όνομα του αρχείου που θα ανοίξει
  • Η λειτουργία "$mode" είναι η λειτουργία στην οποία θα πρέπει να ανοίξει το αρχείο. Ο παρακάτω πίνακας δείχνει τις λειτουργίες.
Τρόπος Περιγραφή
r • Διαβάστε το αρχείο από την αρχή.
• Επιστρέφει false εάν το αρχείο δεν υπάρχει.
• Μόνο για ανάγνωση
r+ • Διαβάστε το αρχείο από την αρχή
• Επιστρέφει false εάν το αρχείο δεν υπάρχει.
• Διάβασε και γράψε
w • Εγγραφή στο αρχείο στην αρχή
• Περικοπή αρχείου σε μηδενικό μήκος
• Εάν το αρχείο δεν υπάρχει, προσπαθήστε να το δημιουργήσετε.
• Γράψτε μόνο
w+ • Εγγραφή στο αρχείο στην αρχή, περικοπή αρχείου σε μηδενικό μήκος
• Εάν το αρχείο δεν υπάρχει, προσπαθήστε να το δημιουργήσετε.
• Διάβασε και γράψε
a • Προσθήκη στο αρχείο στο τέλος
• Εάν το αρχείο δεν υπάρχει, προσπαθήστε να το δημιουργήσετε.
• Γράψτε μόνο
a+ • Προσθήκη στο αρχείο στο τέλος
• Εάν το αρχείο δεν υπάρχει, προσπαθήστε να το δημιουργήσετε
• Διάβασε και γράψε
  • Η τιμή «$use_include_path» είναι προαιρετική, η προεπιλεγμένη τιμή είναι false. Εάν οριστεί σε true, η συνάρτηση πραγματοποιεί αναζήτηση και στη διαδρομή συμπερίληψης.
  • Το "$context" είναι προαιρετικό και μπορεί να χρησιμοποιηθεί για να καθορίσει την υποστήριξη περιβάλλοντος.

Συνάρτηση PHP fwrite().

Η συνάρτηση fwrite χρησιμοποιείται για την εγγραφή σε αρχεία.

Έχει την εξής σύνταξη.

<?php
fwrite($handle, $string, $length);
?>

ΕΔΩ,

  • Το "fwrite" είναι η συνάρτηση PHP για εγγραφή σε αρχεία
  • Το "$handle" είναι ο πόρος δείκτη αρχείου
  • Το "$string" είναι τα δεδομένα που θα εγγραφούν στο αρχείο.
  • Το "$length" είναι προαιρετικό και μπορεί να χρησιμοποιηθεί για να καθορίσετε το μέγιστο μήκος αρχείου.

Συνάρτηση PHP fclose().

Η συνάρτηση fclose() χρησιμοποιείται για να κλείσει ένα αρχείο σε PHP που είναι ήδη ανοιχτό.

Έχει την εξής σύνταξη.

<?php
fclose($handle);
?>

ΕΔΩ,

  • "fclose" είναι το Λειτουργία PHP για το κλείσιμο ενός ανοιχτού αρχείου
  • Το "$handle" είναι ο πόρος δείκτη αρχείου.

Ας δούμε τώρα ένα παράδειγμα που δημιουργεί το my_settings.txt. Θα χρησιμοποιήσουμε τις συναρτήσεις fopen, fwrite και fclose.

Ο κώδικας παρακάτω "create_my_settings_file.php" υλοποιεί το παραπάνω παράδειγμα.

Ανοίξτε το αρχείο
<?php

$fh = fopen("my_settings.txt", 'w')

or

die("Failed to create file"); ?>
Κλείσιμο αρχείου
<?php

fclose($fh);

?>
Δημιουργία αρχείου
<?php

$fh = fopen("my_settings.txt", 'w') or die("Failed to create file");

$text = <<<_END

localhost;root;pwd1234;my_database

_END;

fwrite($fh, $text) or die("Could not write to file");

fclose($fh);

echo "File 1 written successfully"; ?>

Δοκιμή του κώδικα

Ανοίξτε το URL http://localhost/phptuts/create_my_settings.php στο πρόγραμμα περιήγησής σας.

Θα λάβετε την παρακάτω σελίδα.

Λειτουργία fclose PHP

Σημείωση: εάν ο δίσκος σας είναι γεμάτος ή δεν έχετε άδεια εγγραφής αρχείων, θα λάβετε ένα μήνυμα σφάλματος.

Επιστροφή στο URL http://localhost/phptuts/file_function.phpΤι αποτελέσματα έχετε;

Συνάρτηση PHP fgets().

Η συνάρτηση fgets χρησιμοποιείται για την ανάγνωση αρχείων PHP γραμμή προς γραμμή. Έχει την ακόλουθη βασική σύνταξη.

<?php
fgets($handle);
?>

ΕΔΩ,

  • Το “fgets” είναι η συνάρτηση PHP για την ανάγνωση γραμμών αρχείου
  • Το "$handle" είναι ο πόρος δείκτη αρχείου.

Ας δούμε τώρα ένα παράδειγμα που διαβάζει το αρχείο my_settings.txt χρησιμοποιώντας τις συναρτήσεις fopen και fgets.

Ο παρακάτω κώδικας read_my_settings.php υλοποιεί το παραπάνω παράδειγμα.

<?php
$fh = fopen("my_settings.txt", 'r') or die("File does not exist or you lack permission to open it");
$line = fgets($fh);
echo $line; fclose($fh);
?>

ΕΔΩ,

  • Η λειτουργία "fopen" επιστρέφει τον δείκτη στο αρχείο που καθορίζεται στη διαδρομή του αρχείου
  • Η συνάρτηση “die()” καλείται εάν παρουσιαστεί σφάλμα. Εμφανίζει ένα μήνυμα και τερματίζει την εκτέλεση του σεναρίου.

Συνάρτηση PHP copy().

Η συνάρτηση αντιγραφής PHP χρησιμοποιείται για την αντιγραφή αρχείων. Έχει την ακόλουθη βασική σύνταξη.

<?php
copy($file,$copied_file);
?>

ΕΔΩ,

  • Το "$file" καθορίζει τη διαδρομή αρχείου και το όνομα του αρχείου που θα αντιγραφεί.
  • Το "$copied_file" καθορίζει τη διαδρομή και το όνομα του αντιγραμμένου αρχείου

Ο παρακάτω κώδικας απεικονίζει την υλοποίηση.

<?php
copy('my_settings.txt', 'my_settings_backup.txt') or die("Could not copy file");
echo "File successfully copied to 2";
?>

Διαγραφή αρχείου

Η συνάρτηση unlink χρησιμοποιείται για τη διαγραφή ενός αρχείου. Ο παρακάτω κώδικας απεικονίζει την υλοποίηση.

<?php
if (!unlink('my_settings_backup.txt'))
{
echo "Could not delete file";
}
else
{
echo "File 1 successfully deleted";
}
?>

Συνάρτηση PHP file_get_contents().

Η συνάρτηση file_get_contents χρησιμοποιείται για την ανάγνωση ολόκληρου του περιεχομένου του αρχείου.

Η διαφορά μεταξύ των file_get_contents και fgets είναι ότι η συνάρτηση file_get_contents επιστρέφει τα δεδομένα του αρχείου ως συμβολοσειρά, ενώ η συνάρτηση fgets διαβάζει το αρχείο γραμμή προς γραμμή.

Ο παρακάτω κώδικας απεικονίζει την υλοποίηση.

<?php
echo "<pre>"; // Enables display of line feeds
echo file_get_contents("my_settings.txt");
echo "</pre>"; // Terminates pre tag
?>

Γρήγορη αναφορά σε συναρτήσεις αρχείων PHP

Ο παρακάτω πίνακας συνοψίζει τις συναρτήσεις αρχείων που καλύπτονται σε αυτό το σεμινάριο.

Λειτουργία Περιγραφή
file_exists Χρησιμοποιείται για να προσδιορίσει εάν ένα αρχείο υπάρχει ή όχι
fopen Χρησιμοποιείται για το άνοιγμα ενός αρχείου. Επιστρέφει έναν δείκτη στο ανοιχτό αρχείο
fwrite Χρησιμοποιείται για εγγραφή σε αρχεία
fclose Χρησιμοποιείται για το κλείσιμο ενός ανοιχτού αρχείου
fgets Χρησιμοποιείται για την ανάγνωση ενός αρχείου γραμμή προς γραμμή
αντίγραφο Χρησιμοποιείται για την αντιγραφή υπάρχοντος αρχείου
αποσυνδέστε Χρησιμοποιείται για τη διαγραφή ενός υπάρχοντος αρχείου
file_get_contents Χρησιμοποιείται για την επιστροφή των περιεχομένων ενός αρχείου ως συμβολοσειρά

Συχνές Ερωτήσεις

Η fgets διαβάζει μία γραμμή ανά κλήση, η fread διαβάζει έναν καθορισμένο αριθμό byte από έναν ανοιχτό δείκτη χειρισμού και η file_get_contents διαβάζει ολόκληρο το αρχείο σε μια συμβολοσειρά σε μία κλήση χωρίς να χρειάζεται fopen ή fclose.

Η συνάρτηση fwrite γράφει σε μια λαβή ανοιχτού αρχείου και χρειάζεται τις εντολές fopen και fclose γύρω από αυτήν. Η συνάρτηση file_put_contents ανοίγει, γράφει και κλείνει το αρχείο με μία μόνο κλήση, καθιστώντας την την πιο σύντομη επιλογή για απλές εγγραφές.

Χρησιμοποιήστε την εντολή is_writable('file.txt') για να ελέγξετε τα δικαιώματα εγγραφής πριν από την εγγραφή και την εντολή file_exists() για να επιβεβαιώσετε ότι το αρχείο υπάρχει. Σε συστήματα Unix, η εντολή chmod() μπορεί να προσαρμόσει τα δικαιώματα εάν ο διακομιστής ιστού κατέχει το αρχείο.

Ναι. Περιγράψτε τη μορφή, όπως CSV, JSON ή μια διάταξη καταγραφής, και η Τεχνητή Νοημοσύνη μπορεί να παράγει κώδικα χρησιμοποιώντας fgetcsv, json_decode ή έναν προσαρμοσμένο βρόχο, καθώς και χειρισμό σφαλμάτων για αρχεία που λείπουν ή έχουν λανθασμένη μορφή. Δοκιμάστε με πραγματικά δεδομένα.

Ναι. Κοινοποιήστε τη διαδρομή και το σφάλμα και η Τεχνητή Νοημοσύνη μπορεί να εντοπίσει μια λανθασμένη σχετική διαδρομή, ένα αρχείο που λείπει ή ένα πρόβλημα δικαιωμάτων και, στη συνέχεια, να προτείνει τη χρήση μιας απόλυτης διαδρομής, τη δημιουργία του αρχείου ή την προσαρμογή των δικαιωμάτων.

Συνοψίστε αυτήν την ανάρτηση με: