begin process at 2012 05 30 14:34:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Ecrire, effacer et réécrire dans un fichier txt


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ecrire, effacer et réécrire dans un fichier txt

mercredi 2 novembre 2011 à 15:45:24 | Ecrire, effacer et réécrire dans un fichier txt

Chris31000

Bonjour,

J'ai récupéré un script de compteur en php il y a quelques jours que j'ai déjà pas mal modifié, avec beaucoup de mal, pour qu'il s'adapte à mes besoins.
J'ai très peu de connaissance en php et j'essaie de me débrouiller en cherchant par moi même mais là je bloque vraiment sur un point.
J'aimerais donc avoir l'avis de plus experts que moi.
Ce script n'utilise pas de bdd et écrit des stats dans un fichier txt.
Hors, au fil des jours, ce fichier devient forcement de plus en plus lourd, aussi j'aimerais qu'il se vide chaque jour (j'y ai un accès exclusif et n'ai pas besoin de conserver les données d'un jour à l'autre).
J'ignore si ce que j'ai fait est correct et peut fonctionner.
Voici la partie de mon code:

Code PHP :
//cette partie fonctionne - on écrit les données à la suite tout au long de la journée//

if ($dejala != 1) { 
$count=$count+1;
$dh=fopen("$dossier/log.txt","a");
$log=date("d/m/y - H\:i")." -||- IP : ".$ip." <br>Provenance : ".$userreferer."<br>Infos : ".$useragent."<br><hr>\r\n";
fputs($dh,$log);
fclose($dh);
}
//là où je bloque - si la date des dernières modifs du fichier (dans ma logique, la veille) est différente de celle d'aujourd'hui ($now), on vide le fichier et on replace le pointeur au début pour reprendre les enregistrements notés ci-dessus//

$now=date("d/m/y",filemtime("$dossier/log.txt"));	
if (date("d/m/y") != $now) { 
  $dh=fopen("$dossier/log.txt", "w+");
  ftruncate($dh,0); 
  fclose($dh);	
}


D'après vous est ce que c'est correct?
Si ce n'est pas le cas, comment dois je faire?

J'ai essayé en le supprimant et en le recréant unlink("$dossier/log.txt");
$dh=fopen("$dossier/log.txt","w");
fclose($dh);
Mais j'obtiens un message d'erreur sur la page stats avant que le fichier ne soit recréé.
Je vous remercie d'avance pour vos réponses.
vendredi 4 novembre 2011 à 15:34:07 | Re : Ecrire, effacer et réécrire dans un fichier txt

Zut13

Et pourquoi pas :

Code PHP :
<?php
unlink("fichier.txt");
touch('fichier.txt');
?>	


Y a surement plus propre à faire mais déjà c'est un bon début^^
vendredi 4 novembre 2011 à 15:53:16 | Re : Ecrire, effacer et réécrire dans un fichier txt

Chris31000

Bonjour Zut13,

Je te remercie pour ta réponse.
Je ne connaissais pas la fonction touch("")
Je viens donc de chercher pour m'informer et il semblerait (je me trompe peut-être) que ce soit l'équivalent de fopen("","w") non?
Hors j'ai essayé (comme dit dans mon précédent message) et ça ne fonctionne pas immédiatement.
J'obtiens un message d'erreur avant que le fichier ne soit créer, lorsque je recharge la page, tout semble rentrer dans l'ordre, le message d'erreur disparait.

J'ai quand même testé la fonction que je proposais en ignorant si c'était correct et ça semble avoir fonctionné.
Le fichier a bien été vidé, n'ai pas eu de message d'erreur et le script a bien réécrit dedans.

Après je ne sais pas si c'est la meilleure solution, je vais donc tout de même attendre si d'autre réponse se présentent avant de mettre en ligne au public. ;)
vendredi 4 novembre 2011 à 16:10:16 | Re : Ecrire, effacer et réécrire dans un fichier txt

Zut13

Oui c'est à peut près la même chose que fopen.
Par contre je n'ai pas eu de message d'erreur quand j'ai testé en local bizarre...
Quel est le message que tu a eu ?
vendredi 4 novembre 2011 à 16:12:30 | Re : Ecrire, effacer et réécrire dans un fichier txt

Chris31000

En gros "impossible d'ouvrir le fichier, qu'il n'existe pas"
vendredi 4 novembre 2011 à 16:35:57 | Re : Ecrire, effacer et réécrire dans un fichier txt

Zut13

je viens d'essayer ftruncate($fichier,0); et ça marche bien.
Rajoute donc:

Code PHP :
$date = date ("d-m-Y", filemtime($dossier.'/log.txt'));
if($date != date("d-m-Y")){
ftruncate($dh,0);
}	
vendredi 4 novembre 2011 à 16:43:09 | Re : Ecrire, effacer et réécrire dans un fichier txt

Chris31000

Je remplace mon code:
Code PHP :
$now=date("d/m/y",filemtime("$dossier/log.txt"));	
if (date("d/m/y") != $now) { 
  $dh=fopen("$dossier/log.txt", "w+");
  ftruncate($dh,0); 
  fclose($dh);	
}

Par le tien?:
Code PHP :
$date=date("d/m/Y",filemtime("$dossier/log.txt"));
if($date != date("d/m/Y")){
$dh=fopen("$dossier/log.txt", "w+");
  ftruncate($dh,0); 
  fclose($dh);
}




vendredi 4 novembre 2011 à 16:49:50 | Re : Ecrire, effacer et réécrire dans un fichier txt

Zut13

ba le tient à l'air d'être correct aussi sauf que le $dh=fopen("$dossier/log.txt", "w+"); tu le met pas dans le if mais avant, c'est juste que si la date change ça le vide mais dans tout les cas tu ouvre ton fichier donc qu'un seul fopen.
Donc en faite à la base ton code est bon, il fonctionnait non ?
vendredi 4 novembre 2011 à 16:51:55 | Re : Ecrire, effacer et réécrire dans un fichier txt

Zut13

tient ton if complet ta juste à le mettre à la place :

Code PHP :
if ($dejala != 1) { 
$count=$count+1;
$dh=fopen("$dossier/log.txt","w+");
if($date != date("d-m-Y")){
ftruncate($dh,0);
}
$log=date("d/m/y - H\:i")." -||- IP : ".$ip." <br>Provenance : ".$userreferer."<br>Infos : ".$useragent."<br><hr>\r\n";
fputs($dh,$log);
fclose($dh);
}		
vendredi 4 novembre 2011 à 16:53:18 | Re : Ecrire, effacer et réécrire dans un fichier txt

Zut13

oups j'ai oublier la ligne $date=date("d/m/Y",filemtime("$dossier/log.txt")); avant le if

1 2

Cette discussion est classée dans : fichier, dossier, log, txt, dh


Répondre à ce message

Sujets en rapport avec ce message

Droits [ par masterofquebec ] Bonjour,J'aimerais que les scripts de certains dossiers ne puissent pas accéder au dossier parent.Le script ne doit pas pouvoir faire ceci :&lt opendir [ par jphilippev ] bonjour j'ai pris un code du manuel php pour ouvrir un dossier (opendir)et en début de boucle il me renvoirfichier : .fichier : ..</font affichage txt [ par jimpy00 ] bonjour voila mon code : $f=file('fichier.txt'); foreach ($f as $b){ $l=explode('||', $b); if ($l[0]==$_POST[cdd]) {echo $b; break;} } voila Problème de Compteur / php [ par bshaka ] Bonjour à tous,Je cherche à installer un compteur dans ma page d'accueil, ça ne fonctionne pas, j'ai la valeur qui se trouve dans le fichier "compteur Modification de fichier txt [ par Annadrill ] Bonjour,voila: j'ai créé un formulaire qui m'affiche dans la le fichier.txt,que l'on peut modifier puis réécrire dans le fichier.txt.mon problème est Gestion fichier des utilisateurs [ par nemo_1 ] Bonjour deja a toute la comunaute,Je m'excuse d'avance si la question a ete deja pose.Je l'explique il parait tres simple mais meme avec le principe j Comparer une variable à un fichier .txt [ par kevin54000 ] Bonjour a tous!Voila mon problème : Je dois entrer un nom de client dans un formulaire et cela doit m'afficher la ligne correspondante à ce client qui copier les lignes d'un fichier dans un autre fichier ! [ par zabou31 ] Bonjour, je voudrais realiser un code qui prends les données dans un fichier texte pour les reinplanter dans un autre fichier texte. Je pense que sa n Modifier une fichier TXT via une page php ou autre...? [ par djpremium ] Bonjour, voila sa fais plusieur mois que je chercher une solution mais j'ai tjr rien trouver..j'ai un site flash, avec une rubrique agenda ou j'ai mi Afficher un fichier txt aléatoirement( sans bdd ) [ par dydjy940 ] Bonjour, je voudrez savoir s'il existe un code pour afficher aleatoirement un fichier txt, vous etes mon dernier recours svp, Amicalement, Dydjy.


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,590 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales