Si on passe une URL à la fonction fopen(),
on peut ouvrir un fichier situé sur un autre serveur sur le réseau
Internet.
On utilisera ensuite les fonctions :
- fgets()
qui renvoie une ligne du fichier,
- feof()
qui teste la fin de fichier,
- fclose()
qui ferme le fichier.
L'exemple suivant ouvre et lit la page d'accueil du site
www.php.net.
Remarque : pour tester l'exemple, vous
devez avoir une connection Internet ouverte.
Pour afficher le contenu du fichier nous utilisons la fonction htmlentities(),
sinon ce contenu qui est du code HTML serait interprété par le
navigateur, et non pas affichée comme du texte.
Le fait de pouvoir ouvrir un fichier sur
Internet, ne garantit pas que ce fichier existe réellement car le
plus souvent, les serveurs Web ont un mécanisme de personnalisation
d'erreur qui affiche une page si l'url demandée n'est pas bonne.
L'exemple suivant essaye de lire le fichier
www.php.net/quelaforcesoitavectoi.html, qui bien sûr n'existe pas
(enfin, je pense). Le serveur fait une redirection sur une page
signalant l'erreur et proposant une recherche. L'exemple affiche
d'abord le code HTML retourné, puis le code interprétée.
Remarque : pour tester l'exemple, vous
devez avoir une connection Internet ouverte.
Si le fichier n'existe pas et
qu'aucun mécanisme de redirection n'est mis en place on obtient le
résultat suivant.
Pour éviter l'affichage du message d'erreur on peut préfixer fopen()
avec l'opérateur de masquage @.
D'une façon générale, je vous conseille de toujours préfixer fopen()
avec l'opérateur de masquage @.
Quand on ouvre un fichier sur Internet, on récupère le tableau $http_response_header (qui n'est pas commenté
dans la documentation PHP). Ce tableau contient toutes les en-têtes
HTTP renvoyées par le serveur sur lequel on a ouvert le fichier.
Remarque : pour tester l'exemple, vous
devez avoir une connection Internet ouverte.