Advertisement
Hugo7

gen_stats.php

Jul 16th, 2020
626
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.91 KB | None | 0 0
  1. <?php
  2. error_reporting("E_WARNING");
  3.  
  4. // Utilisation en ligne de commande : "php gen_stats.php"    éventuellement avec "| more"
  5.  
  6. // $liste = array("janvier","fevrier","mars","avril","mai","juin");
  7. // $liste = array("avril");
  8. $liste = array("juin19","juillet19","aout19","septembre19","octobre19","novembre19","decembre19","janvier","fevrier","mars","avril","mai","juin");
  9.  
  10.  
  11. $handle_out = fopen("out.csv", "a");
  12.  
  13. foreach ($liste as $mois) {
  14.     echo "".$mois.".log"."\r\n";
  15.    
  16.     $str_file = file_get_contents($mois.".log");
  17.    
  18.     foreach (explode("\n", $str_file) as $line) {
  19.  
  20.         //                 Prend que les lignes d'Hugo ↓                        && prend PAS les actions ↓   && prend PAS l'HRP  ↓
  21.         if ((strpos($line,"Hugo§r") != null || strpos($line,"Huggo§r") != null) && strpos($line,"*") == null && strpos($line,"(") == null) {
  22.            
  23.             // echo $line."\r\n"; /// Décommenter ceci pour voir à quoi ressemblent les lignes traitées - penser à commenter le reste pour pas traiter
  24.            
  25.             // Casse les lignes pour extraire les mots
  26.             foreach (explode(" ",str_replace(array(",", ".", ";", ":", "/", "?", "!", "-", "°", "[", "]", "(", ")", "<", ">", "§r", "§9", "§2", "§8", "*"), " ", $line)) as $mot) {
  27.                 if (!is_numeric($mot)) $stats[strtolower($mot)]++;
  28.             }
  29.         }
  30.     }
  31.     // On vire les trucs trop communs :
  32.     unset(
  33.         $stats["hugo"],
  34.         $stats["huggo"],
  35.         $stats["thread"],
  36.         $stats["client"],
  37.         $stats["main"],
  38.         $stats["chat"],
  39.         $stats["info"],
  40.         $stats["dit"],
  41.         $stats["bas"],
  42.         $stats["chuchote"]
  43.     );
  44.    
  45.     //////// Décommenter ceci pour avoir par exemple les stats de n'importe quel mot pris isolément, affiché dans la console (penser à commenter l'écriture de out.csv pour éviter de créer un fichier)
  46.     // echo $mois." Merveilleux : ".$stats["merveilleux"]. "\r\n";
  47.     // echo $mois." Formidable : ".$stats["formidable"]. "\r\n";
  48.     // echo "\r\n";
  49.    
  50.    
  51.     // tri et out.csv  --- Penser à del out.csv avant chaque test
  52.     arsort($stats);
  53.     $out = array_slice($stats,0,150); // Nombre de mots dont on fait les statistiques (moins deux à cause d'un décalage, faire attention lors du traitement excel)
  54.    
  55.     foreach ($out as $key => $val) {
  56.         // echo $key . " : " . $val . "\r\n";  /// Décommenter ceci pour afficher dans la console (php gen_stats.php | more) les stats brutes IMPORTANT pour gérer correctement les décalages dans le csv - penser à commenter l'output
  57.         $keys = $keys . ";" . $key;
  58.         $vals = $vals . ";" . $val;
  59.     }
  60.    
  61.     fputs($handle_out, $mois." ;".utf8_encode($keys) . "\r\n");
  62.     fputs($handle_out, $mois." ;".utf8_encode($vals) . "\r\n");
  63.    
  64.    
  65.     unset($out,$stats, $keys, $vals); //ràz pour le fichier suivant
  66. }
  67.  
  68. fclose($handle_out);
  69.  
  70.  
  71. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement