Bien le bonjour,
Je suis actuellement bloqué sur un projet en php.
En effet, j'ai un fichier texte qui contient des journaux d’évènements comme suivent:
Maintenant je suis dois traiter ce fichier afin de mettre chaque morceaux dans une base de donnée, pour ça, je procède tel que suit:
1°/-Ouverture fichier.
2°/-Lire la ligne n.
3°/-analyser la ligne n, supprimer les espaces, mettre le résultat en tableau indexé.
4°/-mettre chaque éléments du tableau en base de donnée.
4°/-Répéter l'opération 2-3-4 sur chaque lignes du fichier jusqu'à atteindre la fin de celui-ci.
En théorie pas de soucis, en pratique, on fait moins le malin
.
En fait, je n'arrive pas à extraire mes données de mon tableau indexé.
Voici mon code:
Le truc c'est que dans ma boucle foreach ça ne se passe pas comme je le souhaite.
normalement, avec un print_r($0) par exemple, je devrait avoir comme résultat quelque chose du genre:
avec un print_r($1) un résultat semblable à:
et ainsi de suite.
mais au lieu de ça j'ai un beau...charabia:
Si un pro du php peut m'aider, je lui en suis reconnaissant.
Modifié par DR I (07 Apr 2011 - 09:27)
Je suis actuellement bloqué sur un projet en php.
En effet, j'ai un fichier texte qui contient des journaux d’évènements comme suivent:
1300809100.513 1057 192.168.221.63 TCP_MISS/200 14454 GET http://www2.mediadirect.ro/widgets/thumb-realitatea/thumbnail.jpg? - HIER_DIRECT/178.21.120.30 image/jpeg
1300809106.445 243 192.168.221.63 TCP_MISS/200 14454 GET http://www2.mediadirect.ro/widgets/thumb-realitatea/thumbnail.jpg? - HIER_DIRECT/178.21.120.30 image/jpeg
Maintenant je suis dois traiter ce fichier afin de mettre chaque morceaux dans une base de donnée, pour ça, je procède tel que suit:
1°/-Ouverture fichier.
2°/-Lire la ligne n.
3°/-analyser la ligne n, supprimer les espaces, mettre le résultat en tableau indexé.
4°/-mettre chaque éléments du tableau en base de donnée.
4°/-Répéter l'opération 2-3-4 sur chaque lignes du fichier jusqu'à atteindre la fin de celui-ci.
En théorie pas de soucis, en pratique, on fait moins le malin

En fait, je n'arrive pas à extraire mes données de mon tableau indexé.
Voici mon code:
<?php
// - LOG PROCESSING AND DATABASE PROVISIONING - //
function logparse() {
// - LOGFILE PARSING AND PROCESSING - //
$squidlogfile = "/srv/www/squid/content/access.log";
$pattern = "/\s+/";
switch (is_readable($squidlogfile)) {
case true:
$stmt = $db_object->prepare('$db_insert');
$res = array();
$parsedfile = new SplFileObject("$squidlogfile","r");
while(!$parsedfile->eof()){
$lineread = $parsedfile->fgets();
//print_r ($lineread."<br>"."<hr>");
$linesplit = preg_split($pattern,$lineread,10,PREG_SPLIT_NO_EMPTY);
foreach ($linesplit as $index){
list($timestamp,$duration,$client,...,$type) = $index;
print_r($timestamp);
}
}
break;
case false:
echo "the file: $squidlogfile is not readable:"."<br>";
break;
}
// - DATABASE CONNECTION AND PROVISIONING - //
$lisquiddbconf="/srv/www/squid/config/squidconf.ini";
$db_conf = parse_ini_file($squiddbconf);
$db_driver = $db_conf['db_driver'];
$db_host = $db_conf['db_host'];
$db_port = $db_conf['db_port'];
$db_name = $db_conf['db_name'];
$db_user = $db_conf['db_user'];
$db_password = $db_conf['db_password'];
$db_source = "$db_driver".":"."$db_host".";"."$db_name";
$db_table = 'access_log';
$db_insert = "INSERT INTO $db_table (timestamp,elapsed,client,action,code,size,method,url,ident,hierarchy,source,content) VALUES (a,b,c,...,l,)";
//$db_object = new PDO($db_source, $db_user, $db_password);
switch (is_readable($squiddbconf)) {
case true:
echo "This file is readable"."<br>";
echo "$db_source";
break;
case false:
echo "this file is not readable:"."<br>";
break;
}
}
logparse();
?>
Le truc c'est que dans ma boucle foreach ça ne se passe pas comme je le souhaite.
normalement, avec un print_r($0) par exemple, je devrait avoir comme résultat quelque chose du genre:
1300809100.513
1300809106.445
avec un print_r($1) un résultat semblable à:
1057
243
et ainsi de suite.
mais au lieu de ça j'ai un beau...charabia:
111T1Gh-Hi121T1Gh-Hi101T2Gh-Ht111T3Gh-Ht131T3Gh-Ht131T3Gh-Ht151T2Gh-Hi151T5Gh-Ht101T7Gh-Ha111T1Gh-Hi121T6Gh-Ht141T9Gh-Ht191T7Gh-Ht181T2Gh-Ht101T2Gh-Ha141T3Gh-Hi101T7Gh-Hi101T2Gh-Ha
Si un pro du php peut m'aider, je lui en suis reconnaissant.

Modifié par DR I (07 Apr 2011 - 09:27)