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 :

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.

Exemple : lire un fichier sur Internet

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.

Exemple : lire un fichier sur Internet

Si le fichier n'existe pas et qu'aucun mécanisme de redirection n'est mis en place on obtient le résultat suivant.

Exemple : lire un fichier sur Internet

Pour éviter l'affichage du message d'erreur on peut préfixer fopen() avec l'opérateur de masquage @.

Exemple : lire un fichier sur Internet

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.

Exemple : lire un fichier sur Internet