Trois états de fonctionnement en fonction d'un fichier CSV

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Trois états de fonctionnement en fonction d'un fichier CSV

Re: Trois états de fonctionnement en fonction d'un fichier CSV

par xstevenetx » 17 nov. 2021, 15:04

De rien si sa peux aider!!!
Moi je galère malgré les explications de "@rthur" mais je continu à chercher.

Re: Trois états de fonctionnement en fonction d'un fichier CSV

par Jason55 » 17 nov. 2021, 14:51

Bonjour,

Ces lignes de codes viennent de m'inspirer pour mes projets.

Merci pour le partage,

Re: Trois états de fonctionnement en fonction d'un fichier CSV

par @rthur » 17 nov. 2021, 13:30

A l'heure actuelle tu as un décompte des serveurs HS dans nb_HS, je serai toi je ferrai la même chose en ajoutant la ville.
Et ensuite à la fin de ton traitement tu comptes le nombre de serveur par ville et le nombre de serveur HS de cette ville.
Si ils sont tous HS, tu met à jour ton tableau pour passer le statut à rouge

Trois états de fonctionnement en fonction d'un fichier CSV

par xstevenetx » 17 nov. 2021, 10:32

Bonjour,
J'ai une liste de région avec des serveurs dans un fichier CSV qui est auto mis à jour en fonction si le serveur ping ou non dans un état OK ou HS.
Exemple

Region1;Ville1;192.168.0.1;HS;
Region1;Ville1;192.168.0.2;OK;
Region1;Ville2;192.168.0.3;OK;
Region1;Ville2;192.168.0.4;OK;
Region1;Ville3;192.168.0.5;HS;
Region1;Ville3;192.168.0.6;HS;

Mon scripts actuel me permet d'avoir 2 états Vert (Quand tout est OK) et Orange (Quand au moins un serveur est HS)
Maintenant j'aimerais avoir un 3eme état qui est Rouge (Quand tous les serveurs de la même ville sont HS)

Mon script actuel :
Code :
<?php
$serveurs = array();
$i = 0;
 
// chargement du fihcier dans un tableau multi dimentionnel
$fp = @fopen("serveurs.csv", "r");
if ($fp) {
    while (($data = fgetcsv($fp, 512, ';')) !== false) {
        if ($i == 0) { // ignore entete
                $i++;
                continue;
        }
        // structure du tableau : region => statut / nb_OK / nb_HS / liste => statut / nb_OK / nb_HS / ip => statut
        if (!array_key_exists($data[0], $serveurs))
                $serveurs[$data[0]] = array('statut' => 'OK', 'nb_OK' => 0, 'nb_HS' => 0, 'liste' => array());
        if (!array_key_exists($data[1], $serveurs[$data[0]]['liste']))
                $serveurs[$data[0]]['liste'][$data[1]] = array('statut' => '<img src=/vert.gif>', 'nb_OK' => 0, 'nb_HS' =>0, 'ip' => array());
 
        $serveurs[$data[0]]['liste'][$data[1]]['ip'][$data[2]] = $data[3];
        $serveurs[$data[0]]['nb_OK']++;
        $serveurs[$data[0]]['liste'][$data[1]]['nb_OK']++;
        if ($data[3] == "HS") {
                $serveurs[$data[0]]['statut'] = "<img src=/". ("orange.gif") .">";
                $serveurs[$data[0]]['nb_HS']++;
                $serveurs[$data[0]]['liste'][$data[1]]['statut'] = "<img src=/". ("orange.gif") .">";
                $serveurs[$data[0]]['liste'][$data[1]]['nb_HS']++;
        }
    }
    if (!feof($fp)) {
        echo "Error: unexpected fgets() fail\n";
    }
    fclose($fp);
}
?>
Merci beaucoup de votre aide.