Bonjour,
Voici mon problème : j'ai un script PHP et un fichier texte. Le script est censé écrire dans le fichier des nombres représentant le nombre de connexions à un site depuis une date.
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 $fichComptes = fopen("/var/www/NewDialup/fichComptes.txt", "r+"); $firstline = fgets($fichComptes); $sql = "SELECT COUNT(DISTINCT username) FROM radcheck"; $req = mysqli_query($connect, $sql) or die('Erreur SQL : '.mysqli_error()); while ($row = mysqli_fetch_row($req)) { rewind($fichComptes); $firstline = $row[0]; fwrite($fichComptes, $firstline); } $fich = file('fichComptes.txt'); $explode = explode("\n", $fich); $nbProvisoire = $firstline - $fich[1]; // nombre de comptes crees hier $fich[1] = $firstline; // apres avoir calcule ce nombre, on met le compteur a jour fwrite($fichComptes, "\n".$firstline); fseek($fichComptes, 0, SEEK_END); $ligne = fgets($fichComptes); $ligne = explode(" ", $fich[3]); $nbActuel = intval($ligne[1]); $nbActuel = $nbActuel + $nbProvisoire; unset($ligne); fwrite($fichComptes, date("Y")." ".$nbActuel); // pour la reecrire avec les valeurs actuelles fclose($fichComptes);
Je voudrais que le script agisse de la façon suivante :
Voici le fichier texte avant exécution du script (575 connexions recensées) :
Après exécution, pour 5 nouvelles connexions recensées :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 575 // nombre de connexions au total 575 // nombre provisoire 2011 300 // connexions faites en 2011 2012 275 // en 2012
Le nombre provisoire me permet de calculer le nombre de nouvelles connexions effectuées depuis les dernières heures : 580 - 575 = 5
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 580 // nombre de connexions au total 580 // nombre provisoire 2011 300 // connexions faites en 2011 2012 280 // en 2012
J'ajoute ce nombre au nombre de connexions de la ligne correspondante (2012) donc 275 + 5 = 280
Sur le code que j'ai fourni, je n'arrive pas à placer mon pointeur sur la dernière ligne, à effacer cette ligne et à réécrire la ligne comme ceci : 2012 280.
Des idées svp ?
Partager