Cas pratique
Lecture de fichiers texte bruts et extraction d'informations via des outils simples comme grep ou PHP(avec expressions régulières) : Analyse de Logs Serveur avec PHP et Expressions Régulières
Objectif
Voius allez analyser un fichier de logs serveur (format Apache, Nginx, ou autre) en utilisant PHP et les expressions régulières. Vous devrez extraire des informations spécifiques comme les adresses IP, les codes de réponse HTTP, et les URLs demandées.
Contexte
Un site web génère un fichier de logs où chaque ligne contient des informations sur une requête effectuée par un utilisateur. Ces logs sont essentiels pour analyser le trafic, détecter des erreurs ou repérer des comportements suspects.
Exemple d'une ligne de log Apache :
192.168.1.10 - - [05/Feb/2025:10:15:32 +0100] “GET /index.php HTTP/1.1” 200 5320
Explication :
192.168.1.10 → Adresse IP du client
[05/Feb/2025:10:15:32 +0100] → Date et heure de la requête
“GET /index.php HTTP/1.1” → Méthode HTTP et
URL demandée
200 → Code de réponse HTTP
5320 → Taille de la réponse en octets
Objectifs du cas pratique
-
Extraire :
Toutes les adresses IP uniques
Les
URL demandées avec leur fréquence
La répartition des codes HTTP (ex : combien de 200, 404, 500, etc.)
Consignes
Ouvrir et lire le fichier ligne par ligne avec fopen() et fgets().
Utiliser preg_match() pour extraire les IP, les URLs et les codes HTTP.
-
Exemple d'algorithme attendu
Lire le fichier ligne par ligne
Extraire les données avec une expression régulière
Stocker les informations dans des tableaux
Analyser les données (compter les occurrences)
Afficher les résultats sous forme de statistiques
Méthodologie
-
-
récupérer les 2 fichiers, les mettre sur votre serveur php dans un dossier donnees
comprendre le code fourni, notamment la fonction
preg_match (
Aide preg_match) utilisée
que fait le code actuel ? que manque t'il ?
commenter, compléter le code et tester