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
.
|