Bien le bonjour à tous, voila, je reviens vers vous, car je patauge avec un de mes scripts.
Le script est tout con, il ne fait pas grand-chose:
1°/-Vérifier la présence d'un fichier.
2°/-Ouvrir le fichier.
3°/-Lire chaque ligne.
4°/-eclater chaque ligne grâce à preg_split (le pattern etant un espace).
5°/-Prendre chaque ligne et l'envoyer en BDD en faisant en sorte que chaque partie éclatée correspondent à un champs dans la table donnée.
Voici ce que je fais pour l'instant:
Mon souci ici, c'est le foreach, je n'arrive pas à faire en sorte qu'il me sorte un tableau de la forme:
Code : 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
27
28
29
30
31
32
33
34
35
36
37
38
39 <?php function logsparsing(){ // Déclaration du pattern preg_split // $pattern = "/\s/"; //On recherche les espaces dans la chaine soumise.// // Ouverture du fichier de log // $access_log = "/srv/www/squid/content/access.log"; //fichier à lire // if (is_readable($access_log)) { //test du fichier, possible à ouvrir ou pas.// echo "File is readable!"; $readlog = fopen($access_log,"r+"); //On ouvre le fichier.// while (!feof($readlog)) //Boucle jusqu'à l'arrivé en fin de fichier.// { $linesreadlog = fgets($readlog);// On lit le fichier en déplaceant le pointeur ligne par ligne tout en mettant la valeur du pointeur en variable.// foreach($linesreadlog as $linereaded) { $keywords = preg_split($pattern,$linereaded); print_r($keywords); } } fclose($access_log); } else { echo "Error - The file can't be read."; } } logsparsing(); ?>
array ( [0] = 1320.516, [1] = GET, [2] = http://url.com etc);
j'ai donc tenté d'afficher le resultat de keywords mais j'ai une erreur sur l'utilisation de foreache, je sais que celui-ci n'accepte en entrée que des tableau apparement, mais fgets ne sort pas de tableau, et l'utilisation de file(); ne fonctionne pas plus.
Merci de votre aide par avance![]()
Partager