Φункция fopen() PHP
Ορισμός και χρήση
Η συνάρτηση fopen() ανοίγει αρχείο ή URL.
Αν η ανοίγηση αποτύχει, η συνάρτηση επιστρέφει FALSE.
Γραμματική
fopen(ονομασία αρχείου,mode,include_path,κείμενο)
Παράμετροι | Περιγραφή |
---|---|
ονομασία αρχείου | Απαιτείται. Ορίζει το αρχείο ή το URL που πρέπει να ανοίξει. |
mode | Απαιτείται. Ορίζει τον τύπο πρόσβασης που απαιτείται στο αρχείο ή το ρεύμα. Οι πιθανές τιμές είναι στις παρακάτω таблиδες. |
include_path | Οπション. Αν χρειάζεται επίσης να αναζητηθεί το αρχείο στο include_path, μπορείτε να ρυθμίσετε αυτήν την παράμετρο σε 1 ή TRUE. |
κείμενο | Οプション. Ορίζει το περιβάλλον του χειριστή του αρχείου. Το περιβάλλον είναι ένα σύνολο επιλογών που μπορεί να αλλάξει τη συμπεριφορά του ρεύματος. |
Οι πιθανές τιμές του παραμέτρου mode
mode | διατύπωση |
---|---|
"r" | Άνοιγμα σε μορφή ανάγνωσης, και μετάβαση στο κεφάλι του αρχείου. |
"r+" | Άνοιγμα για ανάγνωση και γράφηση, και μετάβαση στο κεφάλι του αρχείου. |
"w" | Άνοιγμα για γράφηση, και μετάβαση στο κεφάλι του αρχείου και μειώνοντας το μέγεθος του αρχείου σε μηδέν. Αν το αρχείο δεν υπάρχει, προσπαθεί να δημιουργηθεί. |
"w+" | Άνοιγμα για ανάγνωση και γράφηση, και μετάβαση στο κεφάλι του αρχείου και μειώνοντας το μέγεθος του αρχείου σε μηδέν. Αν το αρχείο δεν υπάρχει, προσπαθεί να δημιουργηθεί. |
"a" | Άνοιγμα για γράφηση, και μετάβαση στο τέλος του αρχείου. Αν το αρχείο δεν υπάρχει, προσπαθεί να δημιουργηθεί. |
"a+" | Άνοιγμα για ανάγνωση και γράφηση, και μετάβαση στο τέλος του αρχείου. Αν το αρχείο δεν υπάρχει, προσπαθεί να δημιουργηθεί. |
"x" |
Άνοιγμα και δημιουργία αρχείου με γράφηση, και μετάβαση στο κεφάλι του αρχείου. Αν το αρχείο υπάρχει ήδη, η κλήση fopen() αποτύχει και επιστρέφει FALSE, και δημιουργεί ένα μήνυμα σφάλματος επίπεδο E_WARNING. Αν το αρχείο δεν υπάρχει, προσπαθεί να δημιουργηθεί. είναι ίσο με την καθορισμό του σήματος O_EXCL|O_CREAT στο υποκείμενο σύστημα κλήσης open(2). είναι υποστηριζόμενο από την PHP 4.3.2 και μεταγενέστερες εκδόσεις και μπορεί να χρησιμοποιηθεί μόνο για τοπικά αρχεία. |
"x+" |
το δημιουργεί και ανοίγει με τρόπο ανάγνωσης και γραφής, και μετακινεί τον δείκτη αρχείου στην κεφαλή του αρχείου. Αν το αρχείο υπάρχει, η κλήση fopen() αποτύχει και επιστρέφει FALSE, και δημιουργεί ένα μήνυμα σφάλματος επίπεδο E_WARNING. Αν το αρχείο δεν υπάρχει, προσπαθεί να το δημιουργήσει. είναι ίσο με την καθορισμό του σήματος O_EXCL|O_CREAT στο υποκείμενο σύστημα κλήσης open(2). είναι υποστηριζόμενο από την PHP 4.3.2 και μεταγενέστερες εκδόσεις και μπορεί να χρησιμοποιηθεί μόνο για τοπικά αρχεία. |
διατύπωση
fopen() θα ονομασία αρχείου το καθορισμένο όνομα πόρου συνδέεται σε έναν ροή. Αν ονομασία αρχείου είναι "scheme://...στο μορφή "" της, θεωρείται ως URL, η PHP θα αναζητήσει τον επεξεργαστή συμφωνίας (ο οποίος επίσης ονομάζεται κλειδωμένος συμφωνία) για να επεξεργαστεί αυτή τη συμφωνία. Αν η συμφωνία δεν έχει εγγραφεί ως κλειδωμένη συμφωνία, η PHP θα εκδώσει ένα μήνυμα για να βοηθήσει στην ελέγξιση των πιθανών προβλημάτων στο σενάριο και θα ονομασία αρχείου να συνεχιστεί ως ένας κανονικός όνομα αρχείου.
αν η PHP θεωρεί ονομασία αρχείου καθορίζεται ένα τοπικό αρχείο, θα προσπαθήσει να ανοίξει έναν ροή στο αρχείο. Το αρχείο πρέπει να είναι προσβάσιμο από την PHP, οπότε πρέπει να επιβεβαιωθεί ότι οι άδειες πρόσβασης στο αρχείο επιτρέπουν αυτή την πρόσβαση. Αν έχει ενεργοποιηθεί ο ασφαλής μονάδος ή το open_basedir, θα εφαρμοστούν περαιτέρω περιορισμοί.
αν η PHP θεωρεί ονομασία αρχείου καθορίζεται μια εγγεγραμμένη συμφωνία, η οποία εγγράφεται ως URL δικτύου, και η PHP ελέγχει και επιβεβαιώνει ότι η allow_url_fopen έχει ενεργοποιηθεί. Αν απενεργοποιηθεί, η PHP θα εκδώσει μια προειδοποίηση και η κλήση fopen θα αποτύχει.
σχετίζεται κείμενο τη υποστήριξη προστέθηκε στη PHP 5.0.0.
Υποδείξεις και σχόλια
Note:Διαφορετικές οικογένειες λειτουργικών συστημάτων έχουν διαφορετικές συνήθειες λήξης γραμμής. Όταν γράφεται ένα αρχείο κειμένου και επιθυμείται η εισαγωγή μιας νέας γραμμής, πρέπει να χρησιμοποιηθεί το σύμβολο λήξης γραμμής που είναι κατάλληλο για το λειτουργικό σύστημα. Τα συστήματα βασισμένα στο Unix χρησιμοποιούν το \n ως σύμβολο λήξης γραμμής, τα συστήματα βασισμένα στο Windows χρησιμοποιούν το \r\n ως σύμβολο λήξης γραμμής, και τα συστήματα βασισμένα στο Macintosh χρησιμοποιούν το \r ως σύμβολο λήξης γραμμής. Αν χρησιμοποιηθεί λάθος σύμβολο λήξης γραμμής κατά την εγγραφή αρχείου, άλλες εφαρμογές που ανοίγουν αυτά τα αρχεία μπορεί να συμπεριφέρονται παράξενα.
Η Windows παρέχει μια ετικέτα μετατροπής κειμένου ("t") που μπορεί να μετατρέψει διαφάνως το \n σε \r\n. Συνεπώς, μπορεί να χρησιμοποιηθεί και η "b" για να επιβληθεί η δυαδική λειτουργία, έτσι ώστε να μην μετατρέπονται τα δεδομένα. Για να χρησιμοποιηθούν αυτές οι ετικέτες, πρέπει να χρησιμοποιηθεί η "b" ή η "t" ως ο τελευταίος χαρακτήρας του παραμέτρου mode.
The default conversion mode depends on the SAPI and the version of PHP being used, so for ease of portability, it is encouraged to always specify the appropriate flag. If you are operating plain text files and using \n as the line terminator in the script, but still expect these files to be readable by other applications such as Notepad, use "t" in the mode. In all other cases, use "b".
Without specifying the "b" flag when operating binary files, you may encounter some strange problems, including corrupted image files and strange issues related to \r\n characters.
Note:For portability reasons, it is strongly recommended to always use the "b" flag when opening files with fopen().
Note:Once again, for portability reasons, it is strongly recommended that you rewrite the code that depends on the "t" mode to use the correct line terminator and change it to "b" mode.
Examples
<?php $file = fopen("test.txt","r"); $file = fopen("/home/test/test.txt","r"); $file = fopen("/home/test/test.gif","wb"); $file = fopen("http://www.example.com/","r"); $file = fopen("ftp://user:password@example.com/test.txt","w"); ?>