Το αρχείο ανάγνωσης php από το τέλος. PHP: Διαβάστε ένα αρχείο PHP. Εργασία με αρχεία σε PHP: ανάγνωση, γραφή και συστάσεις. Δημιουργία και διαγραφή αρχείων

PHP

file_exists("test.txt")//Υπάρχει το αρχείο; filesize("test.txt");//Μάθετε το μέγεθος του αρχείου //Η χρονική σήμανση επιστρέφεται: fileatime("test.txt");//Ημερομηνία τελευταίας πρόσβασης στο αρχείο //date("d M Y" , $atime); filemtime("test.txt");//Ημερομηνία τροποποίησης αρχείου //date("d M Y", $mtime); filectime("test.txt");//Ημερομηνία δημιουργίας αρχείου (Windows) //date("d M Y", $ctime);

Αρχεία: τρόποι λειτουργίας

PHP

fopen πόρου (όνομα αρχείου συμβολοσειράς, λειτουργία συμβολοσειράς) // πόρος - επιστρέφει έναν δείκτη στο αρχείο σε περίπτωση επιτυχίας ή FALSE σε περίπτωση σφάλματος
Τρόπος λειτουργίας Περιγραφή
r άνοιγμα αρχείου μόνο για ανάγνωση.
r+ ανοίξτε το αρχείο για ανάγνωση και γραφή.
w ανοίξτε το αρχείο μόνο για εγγραφή. Εάν υπάρχει, τότε τα τρέχοντα περιεχόμενα του αρχείου καταστρέφονται. Η τρέχουσα θέση έχει οριστεί στην αρχή.
w+ ανοίξτε το αρχείο για ανάγνωση και γραφή. Εάν υπάρχει, τότε τα τρέχοντα περιεχόμενα του αρχείου καταστρέφονται. Η τρέχουσα θέση έχει οριστεί στην αρχή.
ΕΝΑ ανοίξτε το αρχείο για εγγραφή. Η τρέχουσα θέση ορίζεται στο τέλος του αρχείου.
α+ ανοίξτε το αρχείο για ανάγνωση και γραφή. Η τρέχουσα θέση ορίζεται στο τέλος του αρχείου.
σι επεξεργαστείτε το δυαδικό αρχείο. Αυτή η σημαία απαιτείται όταν εργάζεστε με δυαδικά αρχεία στα Windows.

Άνοιγμα και κλείσιμο αρχείων σε PHP

PHP

$fi = fopen("test.html", "w+") ή die("Σφάλμα"); //Παραδείγματα $fi = fopen("http://www.you/test.html","r"); $fi = fopen("http://ftp.you/test.html", "r"); //Κλείσιμο fclose($fi)

Ανάγνωση αρχείων σε PHP

PHP

//Διαβάστε το αρχείο fread(int fi, int μήκος) $str = fread($fi, 5); // Διαβάστε τους πρώτους 5 χαρακτήρες echo $str; // αφού ο κέρσορας έχει μετακινηθεί $str = fread($fi, 12); // Διαβάστε τους επόμενους 12 χαρακτήρες echo $str; fgets(int fi[, int μήκος]) // Ανάγνωση γραμμής από αρχείο fgetss(int fi, int μήκος [, επιτρεπόμενη συμβολοσειρά]) // Διαβάστε μια γραμμή από ένα αρχείο και απορρίψτε ετικέτες HTML // επιτρεπόμενη συμβολοσειρά - ετικέτες που πρέπει να αφεθεί fgetc(int fi) //Διαβάζει έναν χαρακτήρα από ένα αρχείο

Αρχικά, το Write θα συμβεί στην αρχή του αρχείου, αντικαθιστώντας τα υπάρχοντα δεδομένα, εάν υπάρχουν. Επομένως, εάν πρέπει να γράψετε κάτι στο τέλος του αρχείου, πρέπει να ορίσετε το κατάλληλο λειτουργία ανάγνωσης, για παράδειγμα, a+ .

Χειρισμός δρομέα σε αρχεία PHP

PHP

int fseek(int fi, int offset [, int wherece]) //Ρύθμιση του δρομέα // int fi - δείκτη στο αρχείο //offset - αριθμός χαρακτήρων προς μετακίνηση. //whence: //SEEK_SET - η κίνηση ξεκινά από την αρχή του αρχείου. //SEEK_CUR - η κίνηση ξεκινά από την τρέχουσα θέση. //SEEK_END - η κίνηση ξεκινά από το τέλος του αρχείου. fseek($fi, -10, SEEK_END); //Διαβάστε τους τελευταίους 10 χαρακτήρες $s = fread($fi, 10); $pos = ftell($fi); //Μάθετε την τρέχουσα θέση rewind($f)//reset the cursor bool feof($f) //end of file

Απευθείας εργασία με αρχεία (δεδομένα) σε PHP

PHP

αρχείο πίνακα (όνομα αρχείου συμβολοσειράς) // Λήψη των περιεχομένων του αρχείου με τη μορφή πίνακα // Μια άλλη επιλογή για άμεση εργασία με δεδομένα file_get_contents(όνομα αρχείου συμβολοσειράς) // Ανάγνωση (λήψη ολόκληρου του αρχείου σε μια γραμμή) // Εγγραφή σε το αρχείο (αρχικά αντικαταστάθηκε) file_put_contents(όνομα αρχείου συμβολοσειράς, μικτά δεδομένα[,int flag]); //FILE_APPEND // Γράψτε στο τέλος του αρχείου: file_put_contents("test.txt", "data", FILE_APPEND); //Εάν γράψετε έναν πίνακα, $array = array("I", "live"); file_put_contents("test.txt",$array); //μετά παίρνουμε "Ilive"

Διαχείριση αρχείων σε php

PHP

αντιγραφή (πηγή συμβολοσειράς, προορισμός συμβολοσειράς). // Αντιγραφή του αρχείου μετονομασία (str oldname, str newname); // Μετονομάστε το αρχείο unlink(string filename); // Διαγραφή αρχείου

Μεταφόρτωση αρχείων στον διακομιστή PHP

//Ρυθμίσεις PHP.ini file_uploads (on|off) // επιτρέπουν ή απαγορεύουν τη μεταφόρτωση αρχείων upload_tmp_dir // προσωρινό φάκελο για τα μεταφορτωμένα αρχεία. από προεπιλογή προσωρινός φάκελος upload_max_filesize (προεπιλογή = 2 Mb) // μέγ. μέγεθος αρχείου μεταφόρτωσης post_max_size // συνολικό μέγεθος της υποβληθείσας φόρμας (πρέπει να είναι μεγαλύτερο από το upload_max_filesize) // Απλή μεταφόρτωση

HTML

Εργασία με αρχεία στον διακομιστή

PHP

//Αποδοχή δεδομένων $tmp = $_FILES["userfile"]["tmp_name"]; $name = $_FILES ["αρχείο χρήστη"]["όνομα"]; //Μετακίνηση του αρχείου move_uploaded_file($tmp, name); move_uploaded_file($tmp, "upload/".name); // ανακατεύθυνση του αρχείου στον φάκελο μεταφόρτωσης // σε σχέση με το τρέχον αρχείο // Τι υπάρχει στον πίνακα $_FILES $_FILES["userfile"]["name"] // όνομα αρχείου, για παράδειγμα, test.html $_FILES[ "userfile"][" tmp_name"] // προσωρινό όνομα αρχείου (διαδρομή) $_FILES["userfile"]["size"] // μέγεθος αρχείου $_FILES["userfile"]["type"] // τύπος αρχείου $ _FILES["αρχείο χρήστη"] ["σφάλμα"] // 0 - δεν υπάρχουν σφάλματα, αριθμός - συμβολοσειρά ναι fgets(λαβή πόρων [, μήκος int])

Επιστρέφει μια συμβολοσειρά μήκους - 1 byte που διαβάζεται από τον περιγραφέα αρχείου που δείχνει η λαβή. Η ανάγνωση τελειώνει όταν ο αριθμός των byte που διαβάζονται φτάσει στο μήκος - 1, όταν φτάσει στο τέλος της γραμμής (η οποία περιλαμβάνεται στην τιμή επιστροφής) ή όταν φτάσει στο τέλος του αρχείου (όποιο έρθει πρώτο). Εάν το μήκος δεν έχει καθοριστεί, ορίζεται από προεπιλογή 1 kilobyte ή 1024 byte.

Εάν παρουσιαστεί σφάλμα, η συνάρτηση επιστρέφει ΨΕΥΔΗΣ .

Τα πιο συνηθισμένα λάθη:

Προγραμματιστές συνηθισμένοι στη σημασιολογία των συναρτήσεων "C". fgets(), πρέπει να λαμβάνει υπόψη τη διαφορά στον τρόπο με τον οποίο επιστρέφεται η σημαία τέλους αρχείου (EOF).

Ο δείκτης αρχείου πρέπει να είναι έγκυρος και να οδηγεί σε ένα αρχείο που άνοιξε με επιτυχία οι συναρτήσεις fopen()ή fsockopen() .

Παρακάτω είναι ένα απλό παράδειγμα:


Παράδειγμα 1. Ανάγνωση ενός αρχείου γραμμή προς γραμμή

$handle = fopen("/tmp/inputfile.txt" , "r" );
ενώ (! feof ($handle )) (
$buffer = fgets($handle, 4096);
echo $buffer ;
}
fclose($handle);
?>

Σχόλιο:Η παράμετρος μήκους έγινε προαιρετική ξεκινώντας από την έκδοση 4.2.0 της PHP. Εάν παραλειφθεί αυτή η παράμετρος, το μήκος της συμβολοσειράς θεωρείται ότι είναι 1024. Από την PHP 4.3, η παράλειψη της παραμέτρου μήκους θα προκαλέσει την ανάγνωση της ροής στο τέλος της συμβολοσειράς. Εάν οι περισσότερες από τις γραμμές του αρχείου είναι μεγαλύτερες από 8 kilobyte, η πιο αποτελεσματική απόφαση σχετικά με τους πόρους που χρησιμοποιούνται από το σενάριο είναι να καθορίσετε ένα μέγιστο μήκος γραμμής.

Σχόλιο:Αυτή η συνάρτηση μπορεί να επεξεργαστεί σωστά δυαδικά δεδομένα ξεκινώντας από την PHP 4.3. Οι προηγούμενες εκδόσεις δεν είχαν αυτή τη λειτουργία.

Σχετικά με τη χρήση των συναρτήσεων fopen, fclose, feof, fgets, fgetss και fscanf

Ας απαριθμήσουμε όλες τις πιθανότητες

Ένα από τα πλεονεκτήματα της εργασίας με σύγχρονες γλώσσες προγραμματισμού όπως η PHP είναι ο αριθμός των διαθέσιμων δυνατοτήτων. Η PHP θα μπορούσε εύκολα να υιοθετήσει το μότο της Perl, «Υπάρχουν περισσότεροι από ένας τρόποι να κάνεις κάτι», ειδικά όταν πρόκειται για την επεξεργασία αρχείων. Αλλά με την πληθώρα των διαθέσιμων εργαλείων, το ερώτημα είναι ποιο είναι το καλύτερο για να ολοκληρώσετε τη δουλειά. Φυσικά, η απάντηση σε αυτήν την ερώτηση εξαρτάται πραγματικά από τους στόχους σας κατά την επεξεργασία του αρχείου, επομένως η εκμάθηση όλων των δυνατοτήτων της γλώσσας αξίζει τον χρόνο σας.

Παραδοσιακές μέθοδοι αφαίρεσης

Οι μέθοδοι fopen είναι ίσως οι πιο γνωστές στους προγραμματιστές C και C++ του παρελθόντος, καθώς είναι λίγο πολύ τα εργαλεία που βρίσκονται στα χέρια σας εδώ και χρόνια, αν έχετε εργαστεί με αυτές τις γλώσσες προγραμματισμού. Για οποιαδήποτε από αυτές τις μεθόδους, ακολουθείτε την τυπική διαδικασία, χρησιμοποιώντας το fopen για να ανοίξετε το αρχείο, μια συνάρτηση για την ανάγνωση των δεδομένων και, στη συνέχεια, το fclose για να κλείσετε το αρχείο, όπως φαίνεται στην Λίστα 1.

Λίστα 1. Άνοιγμα και ανάγνωση αρχείου χρησιμοποιώντας fgets
$file_handle = fopen("myfile", "r"); ενώ (!feof($file_handle)) ( $line = fgets($file_handle); echo $line; ) fclose($file_handle);

Αν και αυτές οι λειτουργίες είναι γνωστές στους περισσότερους έμπειρους προγραμματιστές, επιτρέψτε μου να αναλύσω πώς λειτουργούν. Στην πραγματικότητα ακολουθείτε αυτά τα βήματα:

  1. Ανοίξτε το αρχείο. Το $file_handle αποθηκεύει έναν σύνδεσμο προς το ίδιο το αρχείο.
  2. Ελέγξτε για να δείτε αν έχετε φτάσει στο τέλος του αρχείου.
  3. Συνεχίστε να διαβάζετε το αρχείο μέχρι να φτάσετε στο τέλος, εκτυπώνοντας κάθε γραμμή που διαβάζετε.
  4. Κλείστε το αρχείο.

Έχοντας αυτό κατά νου, θα εξετάσω κάθε συνάρτηση αρχείου που χρησιμοποιείται εδώ.

λειτουργία fopen

Η συνάρτηση fopen δημιουργεί μια σύνδεση με ένα αρχείο. Λέω "καθιερώνει μια σύνδεση", επειδή, εκτός από το άνοιγμα ενός αρχείου, το fopen μπορεί επίσης να ανοίξει μια διεύθυνση URL:

$fh = fopen("http://127.0.0.1/", "r");

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

Σημείωση:Η επιλογή "r" που χρησιμοποιείται στο fopen υποδεικνύει ότι το αρχείο είναι ανοιχτό μόνο για ανάγνωση. Εφόσον η εγγραφή σε ένα αρχείο δεν περιλαμβάνεται στο εύρος των θεμάτων που συζητούνται σε αυτό το άρθρο, δεν θα απαριθμήσω όλες τις πιθανές τιμές της παραμέτρου. Ωστόσο, πρέπει να αλλάξετε το "r" σε "rb" εάν διαβάζετε από δυαδικά αρχεία για συμβατότητα μεταξύ πλατφορμών. Παρακάτω είναι ένα παράδειγμα αυτού του τύπου.

λειτουργία feof

Η εντολή feof καθορίζει εάν η ανάγνωση έχει φτάσει στο τέλος του αρχείου και επιστρέφει True ή False. Ο βρόχος που εμφανίζεται συνεχίζεται μέχρι το τέλος του αρχείου "myfile". Λάβετε υπόψη ότι το feof επιστρέφει επίσης False εάν διαβάζετε μια διεύθυνση URL και ο χρόνος σύνδεσης λήγει επειδή δεν υπάρχουν άλλα δεδομένα για ανάγνωση.

Λειτουργία fclose

Ας παραλείψουμε τη μέση της Καταχώρισης 1 και ας πάμε στο τέλος. Το fclose κάνει το αντίθετο από το fopen: κλείνει τη σύνδεση με το αρχείο ή τη διεύθυνση URL. Μετά την εκτέλεση αυτής της λειτουργίας, δεν θα μπορείτε πλέον να διαβάζετε από το αρχείο ή την υποδοχή.

λειτουργία fgets

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

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

$string = fgets($file_handle, 81);

Σκεφτείτε το "\0", την ένδειξη τέλους γραμμής στο C και ορίστε το μήκος σε έναν χαρακτήρα μεγαλύτερο από αυτό που πραγματικά χρειάζεστε. Όπως μπορείτε να δείτε, το παραπάνω παράδειγμα χρησιμοποιεί 81, ενώ χρειάζεστε 80 χαρακτήρες. Κάντε συνήθεια να προσθέτετε έναν επιπλέον χαρακτήρα κάθε φορά που χρειάζεται να ορίσετε ένα όριο μήκους γραμμής για μια δεδομένη συνάρτηση.

λειτουργία fread

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

Και εδώ έχουμε πρόσβαση στο fread. Η συνάρτηση fread έχει ελαφρώς διαφορετικό σκοπό από το fgets: προορίζεται για ανάγνωση από δυαδικά αρχεία (δηλαδή αρχεία που αρχικά δεν αποτελούνται από κείμενο αναγνώσιμο από τον άνθρωπο). Δεδομένου ότι η έννοια των "γραμμών" δεν είναι σχετική με τα δυαδικά αρχεία (οι λογικές δομές δεδομένων συνήθως δεν χωρίζονται σε γραμμές), πρέπει να καθορίσετε τον αριθμό των byte που θα διαβαστούν.

$fh = fopen("myfile", "rb"); $data = fread($file_handle, 4096);

Το παραπάνω παράδειγμα διαβάζει 4096 byte (4 KB) δεδομένων. Σημειώστε ότι, ανεξάρτητα από την τιμή που καθορίζετε, το fread θα διαβάσει το πολύ 8192 byte (8 KB).

Υποθέτοντας ότι το αρχείο δεν είναι μεγαλύτερο από 8 KB, το παρακάτω απόσπασμα προγράμματος θα πρέπει να διαβάσει ολόκληρο το αρχείο σε μία γραμμή.

$fh = fopen("myfile", "rb"); $data = fread($fh, μέγεθος αρχείου("myfile")); fclose($fh);

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

λειτουργία fscanf

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

λίστα ($field1, $field2, $field3) = fscanf($fh, "%s %s %s");

Οι συμβολοσειρές μορφής που χρησιμοποιούνται σε αυτήν τη συνάρτηση περιγράφονται σε πολλές πηγές όπως το PHP.net, επομένως δεν θα επαναλάβω αυτές τις πληροφορίες εδώ. Αρκεί να πούμε ότι η μορφοποίηση συμβολοσειρών είναι πολύ ευέλικτη. Θα πρέπει επίσης να αναφερθεί ότι όλα τα πεδία τοποθετούνται στη μεταβλητή που επιστρέφει η συνάρτηση. (Στο C, αυτά θα περνούν ως ορίσματα.)

συνάρτηση fgetss

Η συνάρτηση fgetss είναι διαφορετική από τις παραδοσιακές λειτουργίες χειρισμού αρχείων και σας δίνει μια καλύτερη κατανόηση των δυνατοτήτων της PHP. Λειτουργεί όπως τα fgets, αλλά απορρίπτει τυχόν ετικέτες HTML ή PHP που εντοπίζει, αφήνοντας μόνο το γυμνό κείμενο. Ας πάρουμε το αρχείο HTML παρακάτω.

Λίστα 2. Παράδειγμα αρχείου HTML
Ο τίτλος μου

Αν καταλαβαίνετε τι σημαίνει το "Cause there ain't noone for to give you no pain" τότε ακούτε πάρα πολλά από το συγκρότημα America

Ας το περάσουμε από τη συνάρτηση fgetss.

Λίστα 3. Χρήση fgetss
$file_handle = fopen("myfile", "r"); ενώ (!feof($file_handle)) ( echo = fgetss($file_handle); ) fclose($file_handle);

Αυτό θα λάβετε ως έξοδο:

Ο τίτλος μου Αν καταλαβαίνεις τι σημαίνει το "Cause there ain't noone for to give you no pain", τότε ακούς πάρα πολλά από το συγκρότημα America

λειτουργία fpassthru

Ανεξάρτητα από το πώς διαβάζετε δεδομένα από ένα αρχείο, μπορείτε να εκτυπώσετε τα υπόλοιπα δεδομένα χρησιμοποιώντας το τυπικό κανάλι εξόδου χρησιμοποιώντας τη συνάρτηση fpassthru.

fpassthru($fh);

Αυτή η συνάρτηση εκτυπώνει τα δεδομένα, ώστε να μην χρειάζεται να τα τοποθετήσετε σε μια μεταβλητή.

Μη γραμμική επεξεργασία αρχείων: κίνηση μέσα σε ένα αρχείο

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

fseek($fh, 0);

Το παραπάνω παράδειγμα πηγαίνει πίσω στην αρχή του αρχείου. Εάν δεν θέλετε να μετακινηθείτε στην αρχή του αρχείου - ας πούμε, ένα kilobyte είναι αρκετό - απλά γράψτε:

fseek($fh, 1024);

Από την PHP V4.0, πολλές άλλες επιλογές είναι επίσης διαθέσιμες. Για παράδειγμα, εάν πρέπει να προχωρήσετε 100 byte από την τρέχουσα θέση σας, μπορείτε να χρησιμοποιήσετε τον ακόλουθο κώδικα:

fseek($fh, 100, SEEK_CUR);

Ομοίως, η μετακίνηση 100 byte προς τα πίσω γίνεται με:

fseek($fh, -100, SEEK_CUR);

Εάν θέλετε να επιστρέψετε στη θέση των 100 byte πριν από το τέλος του αρχείου, χρησιμοποιήστε το SEEK_END.

fseek($fh, -100, SEEK_END);

Μόλις φτάσετε στη νέα θέση, μπορείτε να χρησιμοποιήσετε fgets, fscanf ή άλλη συνάρτηση για να διαβάσετε τα δεδομένα.

Σημείωση:δεν μπορείτε να χρησιμοποιήσετε το fseek σε περιγραφείς αρχείων που αναφέρονται σε μια διεύθυνση URL.

Καταγράψτε ένα ολόκληρο αρχείο

Τώρα προχωράμε για να δούμε μερικές από τις μοναδικές δυνατότητες επεξεργασίας αρχείων της PHP: επεξεργασία μεγάλων μπλοκ δεδομένων σε μία ή δύο γραμμές. Για παράδειγμα, πώς μπορείτε να πάρετε ένα αρχείο και να εμφανίσετε ολόκληρο το περιεχόμενό του στην ιστοσελίδα σας; Λοιπόν, έχετε δει ένα παράδειγμα χρήσης βρόχου με fgets. Πώς όμως μπορείτε να το κάνετε πιο εύκολο; Η διαδικασία είναι σχεδόν γελοία εύκολη χρησιμοποιώντας το fgetcontents, το οποίο βάζει ολόκληρο το αρχείο σε μια γραμμή.

$my_file = file_get_contents ("myfilename"); echo $my_file;

Αν και αυτή δεν είναι η καλύτερη επιλογή, μπορείτε να γράψετε αυτήν την εντολή ακόμη πιο σύντομη:

echo file_get_contents("myfilename");

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

echo file_get_contents("http://127.0.0.1/");

Αυτή η εντολή είναι στην πραγματικότητα η ίδια με:

$fh = fopen("http://127.0.0.1/", "r"); fpassthru($fh);

Μπορεί να κοιτάτε αυτά τα παραδείγματα και να σκέφτεστε, "Είναι πολλή δουλειά." Οι προγραμματιστές της PHP συμφωνούν μαζί σας. Έτσι, μπορείτε να συντομεύσετε την παραπάνω εντολή σε:

readfile("http://127.0.0.1/");

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

@readfile("http://127.0.0.1/");

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

$array = split("\n", file_get_contents("myfile"));

Γιατί όμως χρειάζεσαι όλη αυτή την πολυπλοκότητα αν υπάρχει μια απόλυτα κατάλληλη λειτουργία που θα σου κάνει τη δουλειά; Η συνάρτηση PHP file() ολοκληρώνει αυτήν την εργασία σε ένα βήμα: επιστρέφει έναν πίνακα συμβολοσειρών του οποίου τα στοιχεία είναι οι γραμμές του αρχείου.

$array = file("myfile");

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

Οι δυνατότητες της PHP, ωστόσο, υπερβαίνουν κατά πολύ αυτές που περιγράφονται παραπάνω. Μπορείτε να αναλύσετε ολόκληρα αρχεία .ini σε στυλ PHP με μία μόνο εντολή parse_ini_file. Η εντολή parse_ini_file ισχύει για αρχεία παρόμοια με αυτά που εμφανίζονται στην Λίστα 4.

Λίστα 4. Παράδειγμα αρχείου .ini
; Όνομα σχολίου = αναζήτηση "King Arthur" = Να αναζητήσετε το αγαπημένο χρώμα του ιερού δισκοπότηρου = Μπλε Samuel Clemens = Mark Twain Caryn Johnson = Whoopi Goldberg

Οι ακόλουθες εντολές αντιπροσωπεύουν ένα αρχείο ως πίνακα και στη συνέχεια εκτυπώνουν τον πίνακα:

$file_array = parse_ini_file("holy_grail.ini"); print_r $file_array;

Το αποτέλεσμα θα είναι η ακόλουθη έξοδος:

Λίστα 5. Έξοδος
Σειρά ( => Βασιλιάς Αρθούρος => Να αναζητήσετε το Άγιο Δισκοπότηρο => Μπλε => Μαρκ Τουέιν => Γούπι Γκόλντμπεργκ)

Φυσικά, μπορεί να παρατηρήσετε ότι αυτή η εντολή έχει συγχωνεύσει τις ενότητες. Αυτή είναι η προεπιλεγμένη ενέργεια, αλλά μπορείτε εύκολα να την προσαρμόσετε χρησιμοποιώντας το δεύτερο όρισμα του parse_ini_file: process_sections, το οποίο είναι μια μεταβλητή Boolean. Ορίστε το process_sections σε True.

$file_array = parse_ini_file("holy_grail.ini", true); print_r $file_array;

Και η έξοδος σας θα μοιάζει με αυτό:

Λίστα 6. Έξοδος
Πίνακας ( => Πίνακας ( => Βασιλιάς Αρθούρος => Να αναζητήσετε το Άγιο Δισκοπότηρο => Μπλε) => Σειρά ( => Μαρκ Τουέιν => Γούπι Γκόλντμπεργκ))

Η PHP τοποθετεί τα δεδομένα σε έναν εύκολα αναλύσιμο πολυδιάστατο πίνακα.

Αλλά αυτή είναι μόνο η κορυφή του παγόβουνου όταν πρόκειται για την επεξεργασία αρχείων σε PHP. Πιο πολύπλοκες λειτουργίες όπως το tidy_parse_file και το xml_parse μπορούν να σας βοηθήσουν να αναλύσετε έγγραφα HTML και XML, αντίστοιχα. Ανατρέξτε στην ενότητα για πιο λεπτομερείς πληροφορίες σχετικά με τον τρόπο λειτουργίας αυτών των λειτουργιών. Αξίζει να εξετάσετε και τα δύο εάν θα εργάζεστε με αυτούς τους τύπους αρχείων, αλλά αντί να εξετάσετε όλους τους πιθανούς τύπους αρχείων, ίσως θελήσετε να ρίξετε μια πιο προσεκτική ματιά στα περιεχόμενα αυτού του άρθρου, το οποίο έχει μερικούς καλούς γενικούς κανόνες για δουλεύοντας με τις λειτουργίες που έχω περιγράψει μέχρι τώρα.

Καλό στυλ προγραμματισμού

Ποτέ μην υποθέτετε ότι όλα στο πρόγραμμά σας θα λειτουργούν όπως πρέπει. Για παράδειγμα: τι γίνεται αν το αρχείο που αναζητάτε έχει μετακινηθεί; Τι γίνεται αν μια αλλαγή άδειας σας κάνει να μην μπορείτε να διαβάσετε τα περιεχόμενα ενός αρχείου; Μπορείτε να ελέγξετε την ύπαρξη ενός αρχείου και τα δικαιώματα ανάγνωσης του εκ των προτέρων χρησιμοποιώντας τις μεθόδους file_exists και is_readable.

Λίστα 7. Χρήση αρχείου_υπάρχει και είναι_αναγνώσιμο
$filename = "myfile"; if (file_exists($filename) && is_readable ($filename)) ( $fh = fopen($filename, "r"); # Επεξεργασία fclose($fh); )

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

if ($fh = fopen($filename, "r")) ( # Επεξεργασία fclose($fh); )

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

Όπως το fopen, οι συναρτήσεις file_get_contents, file και readfile επιστρέφουν False εάν το αρχείο δεν μπορεί να ανοίξει ή να υποβληθεί σε επεξεργασία. Οι συναρτήσεις fgets, fgetss, fread, fscanf και fclose επιστρέφουν επίσης False εάν παρουσιαστεί σφάλμα. Φυσικά, με εξαίρεση το fclose , πιθανότατα έχετε ήδη επεξεργαστεί τα αποτελέσματα που επιστρέφουν. Όσον αφορά το fclose, δεν υπάρχουν πολλά που μπορούν να γίνουν εάν η λαβή του αρχείου δεν κλείνει σωστά, επομένως ο έλεγχος της τιμής επιστροφής του fclose είναι γενικά υπερβολικός.

Η επιλογή είναι δική σου

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

Εάν επεξεργάζεστε μεγάλους όγκους δεδομένων, πιθανότατα θα βρείτε το fscanf πιο χρήσιμο και αποτελεσματικό από ό,τι, για παράδειγμα, η χρήση αρχείου σε συνδυασμό με τις επόμενες εντολές split και sprintf. Ωστόσο, εάν απλώς εμφανίζετε μεγάλο όγκο κειμένου με μικρές αλλαγές, η χρήση του αρχείου , των συναρτήσεων file_get_contents ή readfile μπορεί να έχει πιο νόημα. Αυτή η λύση θα είναι πιθανώς σωστή όταν χρησιμοποιείτε την PHP για προσωρινή αποθήκευση ή ακόμα και τη δημιουργία ενός προσωρινού διακομιστή μεσολάβησης.

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

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

Για να δημιουργήσετε ένα αρχείο σε PHP σε ένα εκτελέσιμο σενάριο, πρέπει απλώς να καθορίσετε μερικές συναρτήσεις:

Ας ρίξουμε μια ματιά σε ένα παράδειγμα:

$text = "Κάποιο είδος κειμένου για εγγραφή στο αρχείο";
$fp = fopen("file.txt", "w");
fwrite($fp, $text);
fclose($fp);
?>

Εδώ πρέπει να ξέρεις:

fopen()- η συνάρτηση ανοίγει το αρχείο για ανάγνωση ή γραφή και διευκρινίσεις.

Αυτή η διευκρίνιση (η παράμετρος λειτουργίας της λειτουργίας fopen) είναι πολύ σημαντική:

  • "r" - ανοίξτε ένα αρχείο σε php Μόνο για διάβασμα. Ο κέρσορας τοποθετείται στην αρχή.
  • "r+" - ανοίξτε ένα αρχείο σε php για ανάγνωση και γραφή. Ο κέρσορας τοποθετείται στην αρχή. !!! - με αυτές τις δύο λειτουργίες r και r+, τα αρχεία πρέπει να έχουν ήδη δημιουργηθεί (διαφορετικά θα εμφανιστεί ένα σφάλμα Προειδοποίηση: fopen(file.txt) : απέτυχε το άνοιγμα ροής: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος στο ...), και μόνο διαβάζουμε ή έχουμε την ευκαιρία να προσθέσουμε.
  • "w" - το αρχείο ανοίγει ΜΟΝΟ για εγγραφή. Το αρχείο περικόπτεται σε μηδενικό μήκος - δηλαδή αντικαθίσταται. Ό,τι χρειάζεται γράφεται και ο Δρομέας τοποθετείται στην αρχή.
  • "w+" - ανοίγει ένα αρχείο για γράψιμο ΚΑΙ ΑΝΑΓΝΩΣΗ! Τα υπόλοιπα είναι ίδια όπως στη λειτουργία "w". !!! - σε αυτούς τους δύο τρόπους - εάν το αρχείο δεν έχει δημιουργηθεί - ΘΑ ΓΙΝΕΙ ΠΡΟΣΠΑΘΕΙΑ ΝΑ ΤΟ ΔΗΜΙΟΥΡΓΗΣΕΙ!
  • "ένα" - ανοίξτε το αρχείο ΜΟΝΟ για εγγραφή. Σε αντίθεση με το "w", αυτή η επιλογή δεν αντικαθιστά τα περιεχόμενα του αρχείου, αλλά τοποθετεί τον κέρσορα στο τέλος της γραμμής και προσθέτει το περιεχόμενο που θέλαμε να προσθέσουμε στο τέλος.
  • "α+" - ανοίξτε το αρχείο για γραφή και ανάγνωση.

fwrite($fp, $text) - μια συνάρτηση για εγγραφή σε ένα αρχείο στην PHP - δηλαδή, ότι υπάρχει στη μεταβλητή $text γράφεται σε ένα αρχείο που βρίσκεται στη μεταβλητή $fp.

fclose($fp) - συνάρτηση για το κλείσιμο του αρχείου που γράψαμε στη μεταβλητή $fp.

Τώρα μπορείτε εύκολα να δημιουργήσετε σωστά αρχεία σε php, να τα ανοίξετε για ανάγνωση και επεξεργασία.

Χρήσιμες προσθήκες και λειτουργίες PHP για εργασία με ανοιχτό αρχείο:

while(!feof($fp))(
$mytext = fgets($fp, 99);
echo $mytext."
";
}

εδώ πληρούται η προϋπόθεση - "μέχρι να φτάσετε στο τέλος του αρχείου, κάντε αυτό" while(!feof($fp))

1. Λειτουργία fgets($fp, 99) - σας επιτρέπει να διαιρέσετε όλο το περιεχόμενο σε ενότητες των 99 byte και περαιτέρω, για να το δείτε πιο καθαρά, τοποθετούμε μια ετικέτα

Αυτή η συνάρτηση συμβολοσειράς fgets(λαβή πόρων [, μήκος int]) από προεπιλογή δέχεται 1024 byte (1 kilobyte) ως παράμετρο μήκους, εάν δεν έχει καθοριστεί, θα είναι έτσι. Αυτή η παράμετρος είναι προαιρετική από την PHP 4.2.0 (Επιστρέφει FALSE σε περίπτωση σφάλματος)

Πρόσθετες λειτουργίες για άνοιγμα, εγγραφή και δημιουργία αρχείου

Λειτουργία - ενθ αρχείο ανάγνωσης(όνομα αρχείου συμβολοσειράς [, bool use_include_path [, περιβάλλον πόρων]]) - διαβάστε το αρχείο ως σύνολο.

Διαβάζει ένα αρχείο και γράφει τα περιεχόμενα στο buffer εξόδου. Και επιστρέφει τον αριθμό των byte εξόδου. Σε περίπτωση σφάλματος, θα επιστρέψει εάν ο σκύλος δεν χρησιμοποιείται - @readfile.

Κάτι τέτοιο θα συμβεί:

Στο τέλος της λέξης υπάρχει μια ετικέτα
.

σι. Λειτουργία - πίνακας αρχείο(όνομα αρχείου συμβολοσειράς [, int use_include_path [, περιβάλλον πόρων]]), κάνει το ίδιο με τη λειτουργία readfile, με μια εξαίρεση προσθέτει τα περιεχόμενα του αρχείου σε έναν πίνακα:

Με αυτόν τον τρόπο μπορείτε να διαβάσετε οποιεσδήποτε σελίδες στο Διαδίκτυο: $lines = file("http://site/"); και επαναλάβετε μέσω του πίνακα χρησιμοποιώντας τη συνάρτηση foreach.

3α. συνάρτηση συμβολοσειράς file_get_contents(όνομα αρχείου συμβολοσειράς [, bool use_include_path [, περιβάλλον πόρων [, int offset [, int maxlen]]]] - σας επιτρέπει να λαμβάνετε τα περιεχόμενα ως μία μόνο συμβολοσειρά.

Αυτή είναι μια πιο καθολική συνάρτηση PHP για την ανάγνωση ενός αρχείου, παρόμοια με τη συνάρτηση αρχείου, μόνο τα περιεχόμενα επιστρέφονται ως συμβολοσειρά, όχι ως πίνακας, και μπορείτε να ορίσετε συνθήκες - με ποια byte θα ξεκινήσετε - αντισταθμίζεταικαι που να τελειώσω - maxlen. Σε περίπτωση αποτυχίας, θα επιστρέψει FALSE.

Σπουδαίος!!!- σε αυτήν την περίπτωση, η συνάρτηση αντικαθιστά 3 ταυτόχρονα: fopen(), fread() και fclose() και έτσι ξεφορτώνεται το σημάδι.

3β. λειτουργία int file_put_contents(όνομα αρχείου συμβολοσειράς, μικτά δεδομένα [, σημαίες int [, περιβάλλον πόρων]]) - ταυτόσημο με τις διαδοχικές κλήσεις στις συναρτήσεις fopen(), fwrite() και fclose() - επιστρέφει τον αριθμό των byte που γράφτηκαν.

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

file_get_contents — Διαβάζει τα περιεχόμενα ενός αρχείου σε μια συμβολοσειρά

Περιγραφή

Σειρά file_get_contents (συμβολοσειρά $filename [, bool $use_include_path = false [, πόρος $context [, int $offset = -1 [, int $maxlen ]]]])

Αυτή η λειτουργία είναι παρόμοια με τη συνάρτηση αρχείο()με τη μόνη διαφορά ότι file_get_contents()επιστρέφει τα περιεχόμενα του αρχείου σε μια συμβολοσειρά, ξεκινώντας από την καθορισμένη μετατόπιση και μέχρι μέγιστο byte. Σε περίπτωση αποτυχίας, file_get_contents()θα επιστρέψει ΨΕΥΔΗΣ.

Χρησιμοποιώντας τη λειτουργία file_get_contents()Είναι προτιμότερο εάν χρειάζεται να λάβετε ολόκληρο το περιεχόμενο ενός αρχείου, καθώς η συνάρτηση χρησιμοποιεί μια τεχνική αντιστοίχισης αρχείου σε μνήμη για να βελτιώσει την απόδοση, εάν υποστηρίζεται από το λειτουργικό σας σύστημα.

Σχόλιο:

Εάν ανοίγετε ένα URI που περιέχει ειδικούς χαρακτήρες, όπως το διάστημα, θα πρέπει να κωδικοποιήσετε το URI χρησιμοποιώντας urlencode().

Λίστα παραμέτρων

Το όνομα του αρχείου που διαβάζεται.

Use_include_path

Σχόλιο:

Από την PHP 5 μπορείτε να χρησιμοποιήσετε τη σταθερά FILE_USE_INCLUDE_PATHγια να αναζητήσετε ένα αρχείο στη διαδρομή συμπερίληψης.

συμφραζόμενα

Ένας έγκυρος πόρος περιβάλλοντος που δημιουργήθηκε χρησιμοποιώντας τη συνάρτηση stream_context_create(). Εάν δεν χρειάζεται να χρησιμοποιήσετε ένα ειδικό περιβάλλον, μπορείτε να παραλείψετε αυτήν την παράμετρο περνώντας την τιμή ΜΗΔΕΝΙΚΟ.

Η μετατόπιση με την οποία θα ξεκινήσει η ανάγνωση της αρχικής ροής.

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

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

Επιστρεφόμενες τιμές

Η συνάρτηση επιστρέφει τα δεδομένα ανάγνωσης ή ΨΕΥΔΗΣσε περίπτωση λάθους.

Προσοχή

Αυτή η συνάρτηση μπορεί να επιστρέψει ως boolean ΨΕΥΔΗΣ, και μια μη δυαδική τιμή στην οποία μεταδίδεται ΨΕΥΔΗΣ. Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα Boolean type. Χρησιμοποιήστε τον τελεστή === για να ελέγξετε την τιμή που επιστρέφεται από αυτή τη συνάρτηση.

Σφάλματα

Θα δημιουργηθεί ένα σφάλμα επιπέδου E_ΠΡΟΕΙΔΟΠΟΙΗΣΗ, εάν η παράμετρος ονόματος αρχείου δεν μπορεί να βρεθεί, η παράμετρος μέγιστου μήκους είναι μικρότερη από το μηδέν ή η αναζήτηση σε μετατόπιση μετατόπισης στη ροή αποτυγχάνει.

Παραδείγματα

Παράδειγμα #1 Λάβετε και εμφανίστε τον πηγαίο κώδικα της αρχικής σελίδας ενός ιστότοπου

$homepage = file_get_contents("http://www.example.com/");
echo $αρχική σελίδα ;
?>

Παράδειγμα #2 Εύρεση αρχείων στο include_path

// <= PHP 5
$file = file_get_contents("./people.txt" , true );
// > PHP 5
$file = file_get_contents("./people.txt" , FILE_USE_INCLUDE_PATH );
?>

Παράδειγμα #3 Ανάγνωση ενότητας αρχείου

// Διαβάστε 14 χαρακτήρες, ξεκινώντας από τον χαρακτήρα 21
$section = file_get_contents("./people.txt" , NULL , NULL , 20 , 14 );
var_dump($ενότητα);
?>

Το αποτέλεσμα της εκτέλεσης αυτού του παραδείγματος θα είναι κάπως έτσι:

συμβολοσειρά (14) "lle Bjori Ro"

Παράδειγμα #4 Χρήση περιεχομένων ροής

// Δημιουργία νήματος
$opts = πίνακας(
"http" =>πίνακας(
"method" => "GET" ,
"header" => "Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
);

$context = stream_context_create ($opts);

// Ανοίξτε το αρχείο χρησιμοποιώντας τις κεφαλίδες HTTP που ορίστηκαν παραπάνω
$file = file_get_contents ("http://www.example.com/" , false , $context );
?>

Close_notify. Η PHP θα το αναφέρει ως "SSL: Fatal Protocol Error" τη στιγμή που θα φτάσετε στο τέλος των δεδομένων. Για να το ξεπεράσετε αυτό, θα πρέπει να ορίσετε το error_reporting σε ένα επίπεδο που να εξαιρεί την E_WARNING. Οι εκδόσεις PHP 4.3.7 και παλαιότερες μπορούν να ανιχνεύσουν ότι υπάρχει προβληματικό IIS στην πλευρά του διακομιστή κατά το άνοιγμα μιας ροής χρησιμοποιώντας ένα περιτύλιγμα https://και δεν εμφανίζει προειδοποίηση. Εάν χρησιμοποιείτε fsockopen()για τη δημιουργία ssl:// socket, είναι δική σας ευθύνη να εντοπίσετε και να αποκρύψετε αυτήν την προειδοποίηση.