J'ai très bien compris ce que tu as mis a ma disposition, mais il faut déjà que je trouve le moyen de récupérer les données contenu dans le fichier. C'est ce que je suis en train d'essayer de faire. Ma situation actuelle :
_ Le fichier est traité ligne par ligne.
_ Chaque ligne est décomposée différemment (par la fonction preg_match) en tenant compte de certains mots clés, par exemple, si la ligne contient "killed" alors il s'agit d'une ligne qui indique que quelqu'un marque un point, si elle contient "entered the game" elle indique qu'un joueur s'est connecté. Pour que tu comprenne bien où j'en suis, voilà le code :
<?php
$log = file("test.log");
foreach($log as $statInfo)
{
$patternHeadshot = '#L ([0-9/]{10}) - ([0-9:]{8}): "([\s\S]*?)(?:<STEAM[\s\S\d]>*)?" (?:\[\-*\d* \-*\d* \-*\d*\]) (\w*) "([\s\S]*)" (?:\[\-*\d* \-*\d* \-*\d*\]) (\w+) "(\d*\w*)" (\(\w*\))#';
$patternKills = '#L ([0-9/]{10}) - ([0-9:]{8}): "([\s\S]*?)(?:<STEAM[\s\S\d]>*)?" (?:\[\-*\d* \-*\d* \-*\d*\]) (\w*) "([\s\S]*)" (?:\[\-*\d* \-*\d* \-*\d*\]) (\w+) "(\d*\w*)"#';
$patternAssists = '#L ([0-9/]{10}) - ([0-9:]{8}): "([\s\S]*?)(?:<STEAM[\s\S\d]>*)?" (\w*\s*\S*) "([\s\S]*)"#';
$patternAchat = '#L ([0-9/]{10}) - ([0-9:]{8}): "([\s\S]*?)(?:<STEAM[\s\S\d]>*)?" (\w*) "(\w*\d*)"#';
$patternConnexion = '#L ([0-9/]{10}) - ([0-9:]{8}): "([\s\S]*?)(?:<STEAM[\s\S\d]>*)?(?:<>)?" (.+)#';
preg_match("#.*#",$statInfo,$stat);
if(preg_match("#entered the game#",$statInfo,$stat))
{
preg_match($patternConnexion,$statInfo,$stat);
print_r($stat);
echo '<br />';
}
elseif(preg_match("#killed#",$statInfo,$stat))
{
preg_match($patternKills,$statInfo,$stat);
print_r($stat);
echo '<br />';
}
elseif(preg_match("#headshot#",$statInfo,$stat))
{
preg_match($patternHeadshot,$statInfo,$stat);
print_r($stat);
echo '<br />';
}
elseif(preg_match("#purchased#",$statInfo,$stat))
{
preg_match($patternAchat,$statInfo,$stat);
print_r($stat);
echo '<br />';
}
elseif(preg_match("#assisted killing#",$statInfo,$stat))
{
preg_match($patternAssists,$statInfo,$stat);
print_r($stat);
echo '<br />';
}
}
?>
Ce code permet de découper les lignes du fichier de sorte à pouvoir enregistrer plus facilement les données contenue dans le fichier, pour te faire comprendre la différence, voici une partie de fichier .log brut (original) :
L 07/15/2014 - 19:39:45: "Vladimir<11><BOT><CT>" purchased "awp"
L 07/15/2014 - 19:39:47: "Chet<4><BOT><TERRORIST>" purchased "ak47"
L 07/15/2014 - 19:39:48: "Chet<4><BOT><TERRORIST>" [650 1471 -153] killed "gK.sn2<2><STEAM_1:1:84443486><CT>" [602 1137 186] with "ak47" (headshot)
L 07/15/2014 - 19:39:49: "Dave<9><BOT><CT>" [116 851 -16] killed "Zane<10><BOT><TERRORIST>" [340 1069 49] with "m4a1"
L 07/15/2014 - 19:39:50: "gK.sn2<2><STEAM_1:1:84443486><CT>" purchased "awp"
L 07/15/2014 - 19:39:50: "gK.sn2<2><STEAM_1:1:84443486><CT>" purchased "p250"
L 07/15/2014 - 19:39:52: "Zane<10><BOT><TERRORIST>" purchased "p90"
L 07/15/2014 - 19:39:53: "Zane<10><BOT><TERRORIST>" purchased "deagle"
L 07/15/2014 - 19:40:00: "Vladimir<11><BOT><CT>" [1474 593 -159] killed "Chet<4><BOT><TERRORIST>" [1649 1194 -55] with "awp"
Et maintenant, les même lignes après avoir été traitées par le programme :
Array ( [0] => L 07/15/2014 - 19:39:45: "Vladimir<11>" purchased "awp" [1] => 07/15/2014 [2] => 19:39:45 [3] => Vladimir<11> [4] => purchased [5] => awp )
Array ( [0] => L 07/15/2014 - 19:39:47: "Chet<4>" purchased "ak47" [1] => 07/15/2014 [2] => 19:39:47 [3] => Chet<4> [4] => purchased [5] => ak47 )
Array ( [0] => L 07/15/2014 - 19:39:48: "Chet<4>" [650 1471 -153] killed "gK.sn2<2>" [602 1137 186] with "ak47" [1] => 07/15/2014 [2] => 19:39:48 [3] => Chet<4> [4] => killed [5] => gK.sn2<2> [6] => with [7] => ak47 )
Array ( [0] => L 07/15/2014 - 19:39:49: "Dave<9>" [116 851 -16] killed "Zane<10>" [340 1069 49] with "m4a1" [1] => 07/15/2014 [2] => 19:39:49 [3] => Dave<9> [4] => killed [5] => Zane<10> [6] => with [7] => m4a1 )
Array ( [0] => L 07/15/2014 - 19:39:50: "gK.sn2<2>" purchased "awp" [1] => 07/15/2014 [2] => 19:39:50 [3] => gK.sn2<2> [4] => purchased [5] => awp )
Array ( [0] => L 07/15/2014 - 19:39:50: "gK.sn2<2>" purchased "p250" [1] => 07/15/2014 [2] => 19:39:50 [3] => gK.sn2<2> [4] => purchased [5] => p250 )
Array ( [0] => L 07/15/2014 - 19:39:52: "Zane<10>" purchased "p90" [1] => 07/15/2014 [2] => 19:39:52 [3] => Zane<10> [4] => purchased [5] => p90 )
Array ( [0] => L 07/15/2014 - 19:39:53: "Zane<10>" purchased "deagle" [1] => 07/15/2014 [2] => 19:39:53 [3] => Zane<10> [4] => purchased [5] => deagle )
Array ( [0] => L 07/15/2014 - 19:40:00: "Vladimir<11>" [1474 593 -159] killed "Chet<4>" [1649 1194 -55] with "awp" [1] => 07/15/2014 [2] => 19:40:00 [3] => Vladimir<11> [4] => killed [5] => Chet<4> [6] => with [7] => awp )
Maintenant que j'ai accès à chaque type de lignes de façon individuelle, j'aimerais pouvoir faire en sorte que le programme enregistre chaque kills, morts, ... dès qu'il lit une ligne concernant l'action que je veux enregistrer dans un array (par joueurs), ou si ce n'est pas possible, dans une BDD (mais à ce moment là j'aimerais pouvoir faire en sorte qu'une table se créer automatiquement (d'après un model que j'aurais pré-enregistré) portant comme nom la date de partie, que j'extrairais du fichier .log, et mettre l'heure du début de partie (se trouvant également au début du fichier .log) en commentaire de la table).
Gros projet quand même... C'est pour cela qu'il serait préférable d'enregistrer tout cela dans un array (qui contiendrait un array par joueurs)...
Voilà, comprends-tu désormais où j'en suis ?

C'est aussi pour cela que je suis venu demander de l'aide, car c'est un projet assez complexe, pour moi du moins... ^^"