PHP:vider un fichier texte

Fermé
deb_fab Messages postés 45 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 13 juillet 2006 - 12 juil. 2006 à 17:36
 Psycho - 27 nov. 2011 à 16:21
bonjour
sur un site, je dois modifier le contenu d'un fichier texte de base.
jusque la pas de probleme. ouverture ok et ecriture ok.
mais quand on réécris un texte qui est plus court que le précedent, le partie non-écrasé reste. la fin de fichier n'est apparement pas deplacé.

ce qui deonne en fin de compte de textes du genre :
...texte...htm>tm>m>htm>m>

il faudrait donc que je vide le fichier avant.
quelqu'un sauari comment svp ? merci
A voir également:

8 réponses

5 ans plus tard..
29 mars 2011 à 10:22
J'ouvre mon fichier en ecriture:
$ecrire = fopen('fichier.txt',"w");

Je tronque mon fichier jusqu'au pointeur en position 0.
ftruncate($ecrire,0);


Manuel PHP:
FOPEN : http://fr2.php.net/manual/fr/function.fopen.php
FTRUNCATE : http://fr2.php.net/manual/fr/function.ftruncate.php
28
ça marche niquel ;-)
0
Merci!
0
B@|-|@N Messages postés 386 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 7 décembre 2007 62
12 juil. 2006 à 18:20
Tu l'effaces et le recrées ?

Bahan, comment ça moi bourrin ^_^
1
deb_fab Messages postés 45 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 13 juillet 2006 8
12 juil. 2006 à 19:40
en faite pour récision, je fais que l'ouvrir et ecrire dedant.

si ca peut aider :
<?
$page=$_GET['fichier']; //passage du nom de fichier en url
$lignetot=$_POST['body']; //passage du texte en post
$monfichier=fopen($page,"r+"); //ouverture de fichier
fseek($monfichier,0);
// la, j'essaye de vider le fichier, pas convainquant !
while($i<=999)
{
fputs($monfichier," ");
$i=$i+1;
}
fputs($monfichier," ");
fseek($monfichier,0);
fputs($monfichier,stripslashes($lignetot)); // et on réécrit le nouveau texte
fclose($monfichier); // ferme le fichier
?>

<meta http-equiv="refresh" content="0;URL=AMPO_ADMIN.php">
1
boly38 Messages postés 267 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 29 septembre 2016 80
29 mars 2011 à 13:30
ou bien sinon avec simplement la fonction
file_put_contents($nomfichier, $contenu)

cf : https://www.php.net/manual/fr/function.file-put-contents.php
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dugenou Messages postés 6087 Date d'inscription mercredi 19 janvier 2005 Statut Contributeur Dernière intervention 30 juillet 2021 1 451
12 juil. 2006 à 19:52
Bonsoir,

Dans la fonction fopen() :

fopen($page,"r+")

essaie de remplacer le r+ par a+

Voir :

https://www.php.net/manual/fr/function.fopen.php

Bon courage
0
deb_fab Messages postés 45 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 13 juillet 2006 8
13 juil. 2006 à 09:27
merci
mais je vourai remplacer le texte et non l'ajouter a la fin.
par contre dans ton lien j'ai remarqué un 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.
je m'en vais le tester sur le champs.
0
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
13 juil. 2006 à 10:08
Pour rappel
http://php.easynet.be/manual/fr/function.unlink.php

Johan
0
pour_quoi_pas Messages postés 40 Date d'inscription mardi 20 juin 2006 Statut Membre Dernière intervention 25 août 2006 10
13 juil. 2006 à 16:50
Salut

Effectivement même si ce n'est pas la manière la plus propre un
fopen("monfichier.ext", "w+")
ça passe.

Ou comme l'a dit jiisiv, d'abord
unlink("chemin/monfichier.ext") 
puis tu le recrée avec le fopen du dessus.
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
29 mars 2011 à 11:37
Bonjour,

toujours regarder le manuel, c'est le meilleur ami du developeur^^

=> RESOLU si c'est le cas
0