Bonjour, ma question est donc :
Pourquoi utiliser fopen("fichier",w+) alors que le fichier est remis à zéro ?
Il n'y a donc rien à lire..
Je me trompe ?
Bonjour, ma question est donc :
Pourquoi utiliser fopen("fichier",w+) alors que le fichier est remis à zéro ?
Il n'y a donc rien à lire..
Je me trompe ?
Qui t'as dit qu'il fallait utiliser forcément w+ ?
- '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. 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.
- 'x' : Crée et ouvre le fichier en lecture seule ; place le pointeur de fichier au début du fichier. Si le fichier existe déjà, fopen() va échouer, en retournant FALSE et en générant une erreur de niveau E_WARNING. Si le fichier n'existe pas, fopen() tente de le créer. Ce mode est l'équivalent des options O_EXCL|O_CREAT pour l'appel système open(2) sous-jacent. Cette option est supportée à partir de PHP 4.3.2 et fonctionne uniquement avec des fichiers locaux.
- 'x+' : Crée et ouvre le fichier en lecture et écriture ; place le pointeur de fichier au début du fichier. Si le fichier existe déjà, fopen() va échouer, en retournant FALSE et en générant une erreur de niveau E_WARNING. Si le fichier n'existe pas, fopen() tente de le créer. Ce mode est l'équivalent des options O_EXCL|O_CREAT pour l'appel système open(2) sous-jacent. Cette option est supportée à partir de PHP 4.3.2, et fonctionne uniquement avec des fichiers locaux.
Pensez au tag
Les règles du Forum
Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS
PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5
SQL : Cours SQL
On ouvre un fichier pour lire, certes, mais aussi pour écrire!! C'est plus pratique d'utiliser fopen("fichier",w+) plutôt que faire un unlink du fichier en question puis un fopen("fichier",r+).
Je connait les autres méthodes d'ouverture de fopen mais je me demande pourquoi existe t-il w+.
Mais si le fichier est supprimer juste avant, il n'y a rien à lire dedans.. donc faire un un fopen("fichier",r+) est inutile non ?Envoyé par fucce
on dirait que tu te mélanger, ouvrir un fichier avec fopen et r+ c'est pas QUE pour lire :Envoyé par Oprichnik
donc si tu veux faire ca pour écrire dans un fichier depuis le début, tu es obligé de l'avoir d'abord supprimé s'il existait.'r+' : Ouvre en lecture et écriture, et place le pointeur de fichier au début du fichier.
ca te permet de faire l'équivalent de la suppression du fichier PUIS l'ouverture en r+ en une seule instruction!'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.
Ok mais alors on utilise w qui supprime le fichier et permet de réécrire dedans sans l'inutilité de la lecture avec le +.
JE comprends pas ta phrase la!Envoyé par Oprichnik
1/ donnes ce que tu as vu
2/ donnes ce que tu penserais utile a la place
Bon puisqu'en utiisant w ou w+ le fichier est de toute façon supprimé.
Pourquoi utilisé w+ au lieu de w puisqu'il n'y a rien à lire après fopen("fichier.txt","w+"); ?
Ah voila, je comprends mieux !Envoyé par Oprichnik
Je dirai que avec w+ tu vas pouvoir utiliser fseek pour retourner en arrière et lire ce que t'as écrit peut etre ?
Ah, ok je pige...
Enfait si je demande cela c'est parce que j'aimerais verrouiller un fichier mais en l'ouvrant avec comme paramètre w.
Et j'espérais peut-être que w+ supprimait le fichier mais retournait quand même son contenu. un peu comme si on fesait :
Y a t-il une méthode qui après avoir ouvert le fichier supprime son contenu dans le but de pouvoir appliquer le verrou sans supprimer le fichier avant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $file = file("fichier.txt"); unlink("fichier.txt");
Ex :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $handle = fopen("fichier.txt","a"); flock($handle,LOCK_EX); fsupprimer_tampon($handle); // Et puis on écrit le fichier qui ne contient plus rien
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager