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.