Téléchargement
illégal
Posez votre question Signaler

PHP:vider un fichier texte

deb_fab 45Messages postés 13 décembre 2005Date d'inscription - Dernière réponse le 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
Lire la suite 

PHP:vider un fichier texte »

11 réponses
Réponse
+11
moins plus
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
NoBoDy - 14 avril 2011 à 10:36
ça marche niquel ;-)
Psycho - 27 nov. 2011 à 16:21
Merci!
Ajouter un commentaire
Réponse
+1
moins plus
Tu l'effaces et le recrées ?

Bahan, comment ça moi bourrin ^_^
Ajouter un commentaire
Réponse
+1
moins plus
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">
Ajouter un commentaire
Réponse
+1
moins plus
ou bien sinon avec simplement la fonction
file_put_contents($nomfichier, $contenu)

cf : http://php.net/manual/fr/function.file-put-contents.php
Ajouter un commentaire
Réponse
+0
moins plus
Bonsoir,

Dans la fonction fopen() :

fopen($page,"r+")

essaie de remplacer le r+ par a+

Voir :

http://fr2.php.net/manual/fr/function.fopen.php

Bon courage
deb_fab- 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.
Ajouter un commentaire
Réponse
+0
moins plus
Pour rappel
http://php.easynet.be/manual/fr/function.unlink.php

Johan
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

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

=> RESOLU si c'est le cas
Ajouter un commentaire
Ce document intitulé « PHP:vider un fichier texte » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?