Όσο το allow_url_fopen είναι ενεργοποιημήνο στο php.ini, μπορείτε να χρησιμοποιείτε τα HTTP και FTP URL με τις περισσότερες συναρτήσεις που παίρνουν ένα όνομα αρχείου σαν παράμετρο. Επιπλέον, τα URL μπορούν να χρησιμοποιηθούν με τις include(), include_once(), require() και require_once() δηλώσεις. Δείτε το ÐáñÜñôçìá M για περισσότερες πληροφορίες σχετικά με τα πρωτόκολλα που υποστηρίζονται από την PHP.
Óçìåßùóç: Στην PHP 4.0.3 και παλαιότερα, για να χρησιμοποιήσετε ταURL wrappers, χρειαζόταν να κάνετε configure τη PHP χρησιμοποιώντας την επιλογή του configure --enable-url-fopen-wrapper.
Óçìåßùóç: Οι Windows εκδόσεις της PHP πριν την PHP 4.3 δεν υποστήριζαν πρόσβαση απομακρυσμένων αρχείων για τις ακόλουθες συναρτήσεις: include(), include_once(), require(), require_once(), και τις imagecreatefromXXX συναρτήσεις στην ÁíáöïñÜ LVIII, Image συναρτήσεις επέκταση.
Για παράδειγμα, μπορείτε να χρησιμοποιήσετε το εξής για να ανοίξετε ένα αρχείο σε ένα remote web server, να διαβάσετε τα δεδομένα που θέλετε, και μετά να χρησιμοποιήσετε τα δεδομένα σε μια ερώτηση βάσης δεδομένων, ή απλά να κάνετε output σε ένα στυλ που ταιριάζει την υπόλοιπη ιστοσελίδα σας.
Μπορείτε επίσης να γράψετε αρχεία σε ένα FTP server (δεδομένου του ότι έχετε συνδεθεί σαν ένας χρήστης με τα σωστά δικαιώματα πρόσβασης). Μπορείτε μόνο να δημιουργήσετε νέα αρχεία με αυτή τη μέθοδο, αν προσπαθήσετε να κάνετε overwrite ένα αρχείο που υπάρχει ήδη, η κλήση της fopen() θα αποτύχει.
Για να συνδεθείτε σαν ένας χρήστης άλλος από τον 'anonymous', πρέπει να ορίσετε το username (και πιθανώς το password) μέσα στο URL, κάπως έτσι: 'ftp://user:password@ftp.example.com/path/to/file'. (Μπορείτε να χρησιμοποιήσετε την ίδια μορφή σύνταξης για να προσπελάσετε αρχεία μέσω του HTTP όταν απαιτούν βασική αναγνώριση.)
ÐáñÜäåéãìá 39-2. Αποθήκευση δεδομένων σε ένα απομακρυσμένο server
|
Óçìåßùóç: Μπορεί να πήρατε την ιδέα από το παραπάνω παράδειγμα πως μπορείτε να χρησιμοποιήσετε αυτή την τεχνική για να γράψετε σε ένα απομακρυσμένο logfile. Δυστυχώς αυτό δεν θα δουλέψει επειδή η κλήση της fopen() θα αποτύχει αν το απομακρυσμένο αρχείο υπάρχει ήδη. Για να κάνετε κατανεμημένο logging έτσι, πρέπει να ρίξετε μια ματιά στην syslog().