Services webmasters
Partenaires
Jeux concours gratuits
 
fnmatch
<<<
fopen fpassthru
>>>

7.29 Système de fichiers
7 Index des fonctions
 Manuel PHP

Introduction
Pré-requis
Installation
Configuration à l'exécution
Types de ressources
Constantes prédefinies
Voir aussi
basename
chgrp
chmod
chown
clearstatcache
copy
delete
dirname
disk_free_space
disk_total_space
diskfreespace
fclose
feof
fflush
fgetc
fgetcsv
fgets
fgetss
file_exists
file_get_contents
file_put_contents
file
fileatime
filectime
filegroup
fileinode
filemtime
fileowner
fileperms
filesize
filetype
flock
fnmatch
->fopen
fpassthru
fputs
fread
fscanf
fseek
fstat
ftell
ftruncate
fwrite
glob
is_dir
is_executable
is_file
is_link
is_readable
is_uploaded_file
is_writable
is_writeable
link
linkinfo
lstat
mkdir
move_uploaded_file
parse_ini_file
pathinfo
pclose
popen
readfile
readlink
realpath
rename

7.29.41 fopen()Ouverture d'un fichier ou d'une URL

[ Exemples avec fopen ]   PHP 3, PHP 4

resource  fopen ( string   filename , string   mode , int   use_include_path , resource   zcontext )

fopen crée une ressource nommée, spécifiée par le paramètre filename , sous la forme d'un flôt. Si filename est de la forme "protocole://...", filename est supposé être une URL, et PHP va rechercher un gestionnaire de protocole adapté pour lire ce fichier. Si aucun gestionnaire pour ce protocole n'est disponible, PHP va émettre une alerte qui vous permettra de savoir que vous avez des problèmes dans votre script, et il tentera d'exploiter filename comme un fichier classique.

Si PHP décide que le fichier filename est un fichier local, il va essayer d'ouvrir un flôt avec ce fichier. Le fichier doit être accessible à PHP . Il vous faut donc vous assurer que vous avez les droits d'accès à ce fichier. Si vous activé le safe mode , ou la directive open_basedir , d'autres conditions peuvent aussi s'appliquer.

Si PHP a décidé que filename spécifie un protocole enregistré, et que ce protocole est enregistré comme un protocole réseau, PHP s'assurera que la directive allow_url_fopen est activée. Si elle est inactive, PHP va émettre une alerte, et l'ouverte va échouer.

Note

La liste des protocoles supportés est disponible Liste des protocoles supportés . Certains protocoles (appelé aussi wrappers ou gestionnaires) supportent des contexte et/ou des options dans le fichier php.ini . Référez vous aux pages du manuel traitant le protocole, pour connaître la liste des options qui sont disponibles. ( i.e. l'option de php.ini user_agent est utilisée par le gestionnaire http ) Pour une description des contexts et du paramètre zcontext , voyez Flôts .

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.

Le paramètre optionnel zcontext est utilisé pour spécifier des paramètres d'optimisation et de callback.

Si l'ouverture échoue, fopen retournera FALSE .

Exemple avec fopen

<?php
$handle
= fopen ("/home/rasmus/file.txt", "r");
$handle = fopen ("/home/rasmus/file.gif", "wb");
$handle = fopen ("http://www.example.com/", "r");
$handle = fopen ("ftp://user:password@example.com/somefile.txt", "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.
Exemple avec fopen sous Windows

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

Voir aussi Liste des protocoles supportés , fclose , fgets , fsockopen , file , file_exists , is_readable , socket_set_timeout et popen .

<< fopen >>
fnmatch Système de fichiers fpassthru
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -