bonjour à tous, je travail sur une application php qui permet de comparer des configurations serveurs.
Actuellement, on recoit via des POST les conf serveurs. Pour chaque conf recu encodé en base64, on les recréer en local, on parse et on affiche tous dans un gros tableau.
Je dois ajouter à cela un fichier d'exclusions dans lequel est renseigné les sections et les paramètres à exclure.
exemple contenu d'un fichier d'exclusion :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 [ENVIRONEMENT], FRST_DIR; [BROKER], alive_response_x; [rtdnfeeder], ping_intervals;
Voila comment je parse et je boucle sur tous mes fichiers actuellement
Donc voila, comme vous pouvez le contastater, il faut créer une fonction qui va regarder si la section et son parametre existe en renvoyant true or false. Si la fonction trouve le parametre/section => on retire du tableau, sinon, ne rien faire.
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 ... function getLine($cle, $section, $tableau) { $found = false; $ligne = 0; while(!$found && $ligne < count($tableau)) { if ($tableau[$ligne][0] == $section && $tableau[$ligne][1] == $cle) { $found = true; } else { $ligne++; } } if ($found) { return $ligne; } else { return FALSE; } } /* function exclusion() { je ne sais pas la codé!} */ ... $i = 1; $h = 1; while (isset($_POST['nom_fichier'.$h])) { // pour chaque fichier reconstitué, les parser $FichierParser = new ParseIni($_POST['nom_fichier'.$h]); $propertiesArray[$h] = $FichierParser->parse(); $h++; } $final = Array(); $nb_fichier = 1; $nb_ligne = 0; foreach($propertiesArray as $config) { foreach($config as $section=>$ligne) { $all_sections[]=$section; foreach($ligne as $cle=>$valeur) { /*if ( section/parametre nest pas dans exclusion) {*/ if (getLine($cle,$section,$final) !== FALSE) { $line = getLine($cle,$section,$final); $final[$line][$nb_fichier+1]=$valeur; } else { $final[$nb_ligne][0]=$section; $final[$nb_ligne][1]=$cle; $final[$nb_ligne][$nb_fichier+1]=$valeur; $nb_ligne++; } /* } */ } } $nb_fichier++;
J'ai besoin d'aide pour créer cette fonction !
![]()






Répondre avec citation




Partager