Manuel PHP
Précédent |  | Suivant

# fopen

(PHP 3 <= 3.0.18, PHP 4 >= 4.0.0)

fopen -- Ouverture d'un fichier ou d'une URL.

## Description

``int fopen` (string filename, string mode, int [use_include_path])`

Si `filename` commence par "http://" (insensible à la casse), une connexion HTTP 1.x est ouverte avec le serveur spécifié, et un pointeur sur la réponse fournie est retourné. Une en-tête '`Host:`' est envoyé avec la requête, afin de gérer les virtual hosts basés sur les noms.

Notez que le pointeur de fichier retourné représente le corps de la réponse, et qu'il n'est pas possible d'accéder aux en-têtes HTTP avec cette fonction.

Les versions antérieures à PHP 4.0.6, ne gère pas les redirections automatiques, ce qui oblige à ajouter les slash finaux "/" pour indiquer un dossier.

Si `filename` commence par "ftp://" (insensible à la casse), une connexion FTP est ouverte avec le serveur spécifié, et un pointeur sur la réponse fournie est retourné. Si le serveur ne supporte par le mode FTP passif, fopen() échouera. Vous pouvez ouvrir des fichiers en lecture seulement, ou en écriture seulement (le full duplex n'est pas supporté).

Si `filename` commence par "php://stdin", "php://stdout", ou "php://stderr", le flot correspondant sera ouvert. (Cela a été introduit en PHP 3.0.13; dans les anciennes versions, les fichiers "/dev/stdin" ou "/dev/fd/0" devaient être utilisés pour accéder à ces flots).

Si `filename` commence par n'importe quoi d'autre, PHP tentera de lire ce fichier dans le système local, et un pointeur sur le fichier ouvert sera retourné.

Si l'ouverture échoue, fopen() retourne `FALSE`.

`mode` peut prendre les valeurs suivantes :

- 'r' - Ouvre en lecture seule, et place le pointeur de fichier au début du fichier.

- 'r+' - Ouvre en lecture et écriture, et place le pointeur de fichier au début du fichier.

- 'w' - Ouvre en écriture seule; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.

- 'w+' - Ouvre en lecture et écriture; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.

- 'a' - Ouvre en écriture seule; place le pointeur de fichier à la fin du fichier file. Si le fichier n'existe pas, on tente de le créer.

- 'a+' - Ouvre en lecture et écriture; place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, on tente de le créer.

De plus, `mode` peut contenir la lettre 'b'. Cette option n'est utile que sur les systèmes qui font la différence entre les fichiers binaires et les fichiers textes (en bref, c'est une fonctionnalité Windows, totalement inutile sous Unix). S'il n'est pas nécessaire, il sera ignoré.

Vous pouvez utiliser le troisième paramètre optionnel pour explorer le dossier include_path, en le mettant à 1.

Exemple 1. Exemple avec fopen()

    <?php
      $fp = fopen("/home/rasmus/file.txt", "r");
      $fp = fopen("http://www.php.net/", "r");
      $fp = fopen("ftp://user:password@example.com/", "w");
    ?>

Si vous rencontrez des problèmes en lecture ou écriture de fichier et que vous utilisez PHP en version module de serveur, n'oubliez pas que les fichiers auxquels vous accédez ne sont pas nécessairement accessibles au processus serveur.

Sous Windows, assurez-vous de bien échapper les anti-slash utilisés dans le chemin du fichier, ou bien utilisez des slash.

    <?php
      $fp = fopen("c:\\data\\info.txt", "r");
    ?>

Voir aussi fclose(), fsockopen(), socket_set_timeout() et popen().

Précédent | Sommaire | Suivant
flock | Niveau supérieur | fpassthru