Accueil > > > PARSER DE LOG QUAKE 3, URBAN TERROR,...
PARSER DE LOG QUAKE 3, URBAN TERROR,...
Information sur la source
Description
Parser de fichier .log de serveur de jeux comme Quake III, Urban Terror, Open Arena, Nexuiz ! Il permet de récupérer les points totaux de chaque Joueurs qui peuvent par la suite être utiliser comme sur GameTracker pour des stats de tout les joueurs ! Voir même une possibilité par la suite de créer un espace membre sur votre serveur pour sauver les stats de ceux qui sont inscrits !!!
Source
- <?Php
- /****************************************************
- * Auteur : MEYER Thibault
- * Date : Vendredi 25 juillet 2008
- * fichier : score.php
- ****************************************************/
- ?>
- <?Php
- function EstPresent($Pseudo, $Table)
- {
- for($i=0; $i < count($Table); $i++)
- {
- if($Table[$i]["Joueur"] == $Pseudo)
- {
- return true;
- }
- }
- return false;
- }
-
- function LireLog($Fichier)
- {
- $Log = "";
- $hFile = fopen($Fichier, "r");
- while(!feof($hFile))
- {
- $Log .= fgets($hFile);
- }
- fclose($hFile);
-
- if(strstr($Log, "score:") == NULL) return false;
-
- $answer = array();
- preg_match_all('(.*)', $Log, $answer, PREG_SET_ORDER);
-
-
- $Log = "";
- for($i=0,$j=0; $i<count($answer); $i++)
- {
- if(strstr($answer[$i][0], "score:") != null)
- {
- $Log[$j++] = $answer[$i][0];
- }
- }
-
- $Stats = array();
- for($i=0; $i<count($Log); $i++)
- {
- if($i == 0) sscanf($Log[$i], "%d:%d score: %d ping: %d client: %d %s %s %s %s" , $NULL, $NULL, $Stats[$i]["score"], $NULL, $NULL, $Stats[$i]["Joueur"], $Stats[$i]["nom2"], $Stats[$i]["nom3"], $Stats[$i]["nom4"]);
- else sscanf($Log[$i], "%d:%d score: %d ping: %d client: %d %s %s %s %s" , $NULL, $NULL, $Stats[$i]["score"], $NULL, $NULL, $Stats[$i]["Joueur"], $Stats[$i]["nom2"], $Stats[$i]["nom3"], $Stats[$i]["nom4"]);
- }
-
- for($i=0; $i<count($Stats); $i++)
- {
- if(@$Stats[$i]["nom2"] != NULL) $Stats[$i]["Joueur"] .= " ".$Stats[$i]["nom2"];
- if(@$Stats[$i]["nom3"] != NULL) $Stats[$i]["Joueur"] .= " ".$Stats[$i]["nom3"];
- if(@$Stats[$i]["nom4"] != NULL) $Stats[$i]["Joueur"] .= " ".$Stats[$i]["nom4"];
- }
-
- //Cration de la liste des joueurs (regroupe les noms en double)
- $Stats2[0]["Joueur"] = "";
- for($i=0, $j=0; $i < count($Stats); $i++)
- {
- if(EstPresent($Stats[$i]["Joueur"], $Stats2) == false)
- {
- $Stats2[$j]["Joueur"] = $Stats[$i]["Joueur"];
- $Stats2[$j++]["score"] = 0;
- }
- }
-
-
- //Rregroupement des points par Joueurs
- for($i=0; $i < count($Stats2); $i++)
- {
- for($j=0; $j < count($Stats); $j++)
- {
- if($Stats[$j]["Joueur"] == $Stats2[$i]["Joueur"]) $Stats2[$i]["score"] += $Stats[$j]["score"];
- }
- }
-
- //Retourne la tableau
- return $Stats2;
- }
-
-
- function EffaceLog($Fichier)
- {
- if(!file_exists($Fichier)) return false;
-
- $hFile = fopen($Fichier, "w");
- if(!$hFile) return false;
- return true;
- }
-
- function array_sort($array, $key)
- {
- for ($i = 0; $i < sizeof($array); $i++)
- {
- $sort_values[$i] = $array[$i][$key];
- }
- asort ($sort_values);
- reset ($sort_values);
- while (list ($arr_key, $arr_val) = each ($sort_values))
- {
- $sorted_arr[] = $array[$arr_key];
- }
- return $sorted_arr;
- }
- ?>
-
-
- <?
- //EXEMPLE
- $mesStats = LireLog("games3.log");
- $mesStats = array_sort($mesStats, "score");
- if($mesStats == false) echo "AUCUNE PARTIE A TRAITER";
- else{
- for($i=count($mesStats)-1; $i>=0; $i--)
- {
- echo $mesStats[$i]["Joueur"]." : ".$mesStats[$i]["score"];
- echo "<br>";
- }
- }
-
- //QUAND MISE A JOUR DES JOUEURS SUR LA BASE DE DONNéES, ON VIDE LE JOURNAL
- echo "<br>";
- //if(EffaceLog("games3.log") == true) echo "EFFACER OK";
- //else echo "EFFACER ERREUR";
- ?>
<?Php
/****************************************************
* Auteur : MEYER Thibault
* Date : Vendredi 25 juillet 2008
* fichier : score.php
****************************************************/
?>
<?Php
function EstPresent($Pseudo, $Table)
{
for($i=0; $i < count($Table); $i++)
{
if($Table[$i]["Joueur"] == $Pseudo)
{
return true;
}
}
return false;
}
function LireLog($Fichier)
{
$Log = "";
$hFile = fopen($Fichier, "r");
while(!feof($hFile))
{
$Log .= fgets($hFile);
}
fclose($hFile);
if(strstr($Log, "score:") == NULL) return false;
$answer = array();
preg_match_all('(.*)', $Log, $answer, PREG_SET_ORDER);
$Log = "";
for($i=0,$j=0; $i<count($answer); $i++)
{
if(strstr($answer[$i][0], "score:") != null)
{
$Log[$j++] = $answer[$i][0];
}
}
$Stats = array();
for($i=0; $i<count($Log); $i++)
{
if($i == 0) sscanf($Log[$i], "%d:%d score: %d ping: %d client: %d %s %s %s %s" , $NULL, $NULL, $Stats[$i]["score"], $NULL, $NULL, $Stats[$i]["Joueur"], $Stats[$i]["nom2"], $Stats[$i]["nom3"], $Stats[$i]["nom4"]);
else sscanf($Log[$i], "%d:%d score: %d ping: %d client: %d %s %s %s %s" , $NULL, $NULL, $Stats[$i]["score"], $NULL, $NULL, $Stats[$i]["Joueur"], $Stats[$i]["nom2"], $Stats[$i]["nom3"], $Stats[$i]["nom4"]);
}
for($i=0; $i<count($Stats); $i++)
{
if(@$Stats[$i]["nom2"] != NULL) $Stats[$i]["Joueur"] .= " ".$Stats[$i]["nom2"];
if(@$Stats[$i]["nom3"] != NULL) $Stats[$i]["Joueur"] .= " ".$Stats[$i]["nom3"];
if(@$Stats[$i]["nom4"] != NULL) $Stats[$i]["Joueur"] .= " ".$Stats[$i]["nom4"];
}
//Cration de la liste des joueurs (regroupe les noms en double)
$Stats2[0]["Joueur"] = "";
for($i=0, $j=0; $i < count($Stats); $i++)
{
if(EstPresent($Stats[$i]["Joueur"], $Stats2) == false)
{
$Stats2[$j]["Joueur"] = $Stats[$i]["Joueur"];
$Stats2[$j++]["score"] = 0;
}
}
//Rregroupement des points par Joueurs
for($i=0; $i < count($Stats2); $i++)
{
for($j=0; $j < count($Stats); $j++)
{
if($Stats[$j]["Joueur"] == $Stats2[$i]["Joueur"]) $Stats2[$i]["score"] += $Stats[$j]["score"];
}
}
//Retourne la tableau
return $Stats2;
}
function EffaceLog($Fichier)
{
if(!file_exists($Fichier)) return false;
$hFile = fopen($Fichier, "w");
if(!$hFile) return false;
return true;
}
function array_sort($array, $key)
{
for ($i = 0; $i < sizeof($array); $i++)
{
$sort_values[$i] = $array[$i][$key];
}
asort ($sort_values);
reset ($sort_values);
while (list ($arr_key, $arr_val) = each ($sort_values))
{
$sorted_arr[] = $array[$arr_key];
}
return $sorted_arr;
}
?>
<?
//EXEMPLE
$mesStats = LireLog("games3.log");
$mesStats = array_sort($mesStats, "score");
if($mesStats == false) echo "AUCUNE PARTIE A TRAITER";
else{
for($i=count($mesStats)-1; $i>=0; $i--)
{
echo $mesStats[$i]["Joueur"]." : ".$mesStats[$i]["score"];
echo "<br>";
}
}
//QUAND MISE A JOUR DES JOUEURS SUR LA BASE DE DONNéES, ON VIDE LE JOURNAL
echo "<br>";
//if(EffaceLog("games3.log") == true) echo "EFFACER OK";
//else echo "EFFACER ERREUR";
?>
Conclusion
Les éléments du tableau "nom2", "nom3"... C'est pour si jamais les gars on des pseudo du genre "Vieux Troll Des Bois" au lieu de "VieuxTrollDesBois"
Historique
- 28 juillet 2008 16:51:55 :
- Ajout d'une conclusion
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
parser un fichier doc en php [ par kayoo ]
je n' arrive pas à parser un fichier de type word en php, le but est de réaliser un moteur de recherche sur le fichier .merci
Parser xml en php [ par tahbre ]
Bonjour à tous, Je dois accéder à un fichier xml qui est sur un autre site ftp que le mien, et je veux réaliser un parser en php de façon à stocker l
parser xml [ par Nebraska ]
bonjour,bon je débute salement en php; et j'ai besoin d'un parser xml. J'ai essayé ça mais bon ça marche pas :(Une bonne âme prèt a me dire ou je me s
Parser overture [ par yvain91 ]
Bonjour,J'aurai besoin, grace à une fonction php, de récupérer des résultats affichés sur la page d'overture de suggestion de mot clé(http://inventory
parser une page web. [ par dezeque ]
hello, j'aimerai savoir comment faire pour parser une page de requete google afin de sortir le nombre de resultat.DeZeQuE
Cherche parser RSS 0.9 1.0 et 2.0 [ par olid ]
Jour, Je cherche un tit script (ou une classe) ou un debut de source pour parser du RSS... Je veux juste recuperer les titres et URLs, ce qui est dej
Au secours : comment parser un fichier xml et inserer a la volé dans une base mysql [ par deblok83 ]
Bonjour, c'est mon premier post ici alors je me permet de me presenter je suis le webmaster de deblok83.com . j'ai un petit proble
Parser une chaine de caractères [ par Suru_Verbal ]
Bonjour à tous,Quelle fonction utiliser s'il en existe une pour parser une chaine de caractères ?Merci d'avance !
Parser Flux XML afin de trouver une info [ par neoxdragon ]
Salut, Ce que je souhaite faire c'est parser un XML de ce type: <item> <id>1</id> <name>Nom1</name> </item>
Flux WEBRANKINFO [ par malik7934 ]
Hello,Aujourd'hui j'ai fait la douloureuse decouverte que je ne pouvais pas utiliser simple xml sur mon site.... je me suis donc empresse de demander
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
HTML VERS PDFHTML VERS PDF par spike911
Cliquez pour lire la suite par spike911
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|