IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Récupérer des données d'un fichier log et les afficher dans une page PHP


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    juillet 2020
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : juillet 2020
    Messages : 36
    Points : 15
    Points
    15
    Par défaut Récupérer des données d'un fichier log et les afficher dans une page PHP
    Bonjour

    Je souhaiterais modifier ce code existant et l'adaptez .

    Je pense qu'il y a un problème avec trim
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $DATE[$i]=trim(substr($buffer[0],1,14));
    $ACTION[$i]=trim(substr($buffer[6],4));

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // Lecture fichier historique
    			$curline=fgets($handle);
    			if (($curline) and strpos($curline,"Aucune action")===false){
    				$buffer=explode("|",$curline);
    				$DATE[$i]=trim(substr($buffer[0],1,14));
    				$ACTION[$i]=trim(substr($buffer[6],4));
    				if($ACTION[$i]=="MARCHE") $ACTION[$i]="Marche";
    				if($ACTION[$i]=="ARRET") $ACTION[$i]="Arrêt";
    				$i++;
    				}


    Je pense a un problème d' espaces ou de caractères avec trim.

    Pouvez vous m'aidez merci

  2. #2
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    mai 2004
    Messages
    1 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : mai 2004
    Messages : 1 451
    Points : 2 349
    Points
    2 349
    Par défaut
    Bonjour

    Je te propose un truc comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
     
    $str="20/09/22 23:00:03 | Mode Aut | T int = 22.1 | T cible = 28.0 | IN Arr | OUT Mar | ==> MARCHE" . PHP_EOL;
    $str.="21/09/22 00:00:03 | Mode Aut | T int = 21.9 | T cible = 16.5 | IN Mar | OUT Mar | ==> ARRET";
     
    $regex = '/(?<date>[^|]*)(?<extra>|.*)==> (?<status>.*)\n?/';
     
    preg_match_all($regex, $str, $matches, PREG_SET_ORDER);
     
    foreach ($matches as $match) {
        echo '[ ' . (trim($match['date'])) . ' ] ' . trim($match['status']) . PHP_EOL;
    }
    Tu peux le tester en ligne ici : https://onlinephp.io/c/bc1714
    Christophe (cavo789)
    Mes scripts Open Source : https://github.com/cavo789

  3. #3
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    mars 2009
    Messages
    2 578
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : mars 2009
    Messages : 2 578
    Points : 5 815
    Points
    5 815
    Par défaut
    Attention cavo789, je crois qu'il veux parser l'autre log, celui qui est en dessous.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  4. #4
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    juillet 2020
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : juillet 2020
    Messages : 36
    Points : 15
    Points
    15
    Par défaut
    Bonjour , cavo789 , Merci d'avoir répondu mais ce sont les données de l'autre fichier log que je veux recuperer

    Celui la . Je veux recuperé le jour et l'heure ainsi que le marche ou arrêt

    Pièce jointe 626372

  5. #5
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    mai 2004
    Messages
    1 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : mai 2004
    Messages : 1 451
    Points : 2 349
    Points
    2 349
    Par défaut
    Petite adaptation : https://onlinephp.io/c/88247

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $str="[ 20/09/22 23:00:03 ] MARCHE" . PHP_EOL;
    $str.="[ 21/09/22 00:00:03 ] ARRET";
     
    $regex = '/\[ (?<date>[^\]]*)] (?<status>.*)\n?/';
     
    preg_match_all($regex, $str, $matches, PREG_SET_ORDER);
     
    foreach ($matches as $match) {
        echo 'Date=' . (trim($match['date'])) . ', Statut=' . trim($match['status']) . PHP_EOL;
    }
    Christophe (cavo789)
    Mes scripts Open Source : https://github.com/cavo789

  6. #6
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    juillet 2020
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : juillet 2020
    Messages : 36
    Points : 15
    Points
    15
    Par défaut
    Merci pour votre aide

  7. #7
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    mai 2004
    Messages
    1 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : mai 2004
    Messages : 1 451
    Points : 2 349
    Points
    2 349
    Par défaut
    Honnêtement, c'est compliqué. Votre code actuel me semble d'un compliqué dingue alors que celui que je vous ai proposé ne fait que ... dix lignes et, si vous l'avez testé, il fait ce qui a été demandé. Parser le fichier (il suffit de faire un file_get_contents au lieu de ma variable $str) et là, en fait, vous avez totalement passé sous silence le code que j'ai pris du temps à vous proposer. Temps perdu du coup.

    Honnêtement, c'est compliqué. Vous demandez de l'aide et, c'est récurrent, vous dites ne pas avoir les compétences pour ... Je le conçois mais du coup, peut-être avant de se jeter du vingtième étage sur un matelas pneumatique, peut-être le cascadeur que vous êtes devrait commencer du premier puis monter les étages avec des compétences qui montent en même temps.
    Christophe (cavo789)
    Mes scripts Open Source : https://github.com/cavo789

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 12
    Dernier message: 02/11/2015, 17h16
  2. [XL-2007] Récupérer des données d'un site WEB et les collées sur une feuille Excel
    Par clem4491 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/06/2014, 13h19
  3. Récuperer les données d'un fichier txt pour les insérer dans une Table
    Par sandokhane dans le forum Bases de données
    Réponses: 47
    Dernier message: 31/05/2014, 16h10
  4. [OpenOffice][Base de données] Récupérer les données d'un fichier .txt et les insérer dans une base de données
    Par frack dans le forum OpenOffice & LibreOffice
    Réponses: 9
    Dernier message: 05/08/2009, 11h52
  5. Réponses: 2
    Dernier message: 22/06/2008, 16h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo