Bonsoir le forum,
Je dispose d'un fichier .cfg
define service{
host_name IGFRPA1BACKUP1
service_description C:
_SERVICE_ID 192357
;_CRITICALITY_NAME
_CRITICALITY_LEVEL
_CRITICALITY_ID
use TPL_OS_WINDOWS_DISK_NSCLIENT
contact_groups ADNT
_CRITICAL 95
_WARNING 85
_DISK C
_EQUIPE ADNT
notes MOP0034
}
Via une RegEx, je souhaite récupérer toutes les variables _ (ex _DISK) et les formater d'une certaine façon.
Pour l'instant avec
if (strpos($value, ' _') !== false && $hostname == $onehost) {
$value = preg_replace("/^\s*_\s*/", "[", $value);
$value = str_replace("\n","",$value); // suppression nouvelle ligne (\n)
$value = str_replace("\r","",$value); // suppression retour-chariot (\r)
$keywords = preg_replace("/^\s*_\s*/", "[", $value);
// ici je positionne un pipe pour check visuel début et fin de string
echo ("<pre>"); print_r("|$keywords|"); echo ("</pre>");
//$keywords = preg_split("/[\s,]+/", $keywords);
$servicevar[] = $keywords;
}
j'obtiens
|[SERVICE_ID 192357|
|[CRITICALITY_LEVEL |
|[CRITICALITY_ID |
|[CRITICAL 95|
|[WARNING 85|
|[DISK C|
|[EQUIPE ADNT|
Array
(
[IGFRPA1BACKUP1] => Array
(
[0] => Array
(
[service] => C:
[use] => TPL_OS_WINDOWS_DISK_NSCLIENT
[macros] => Array
(
[variables] => Array
(
[0] => [SERVICE_ID 192357
[1] => [CRITICALITY_LEVEL
[2] => [CRITICALITY_ID
[3] => [CRITICAL 95
[4] => [WARNING 85
[5] => [DISK C
[6] => [EQUIPE ADNT
)
)
)
)
)
Je souhaiterai obtenir
[0] => Array
(
[service] => C:
[use] => TPL_OS_WINDOWS_DISK_NSCLIENT
[macros] => Array
(
[variables] => Array
(
[SERVICE_ID] => 192357
[CRITICALITY_LEVEL] => ‘’
[CRITICALITY_ID] => ‘’
[CRITICAL] => 95
[WARNING] => 85
[DISK] => C
[EQUIPE] => ADNT
)
)
)
Je bute sur le remplacement de
|[SERVICE_ID 192357|
par
[SERVICE_ID] => 192357
ainsi que sur le remplacement de
CRITICALITY_LEVEL
par
[CRITICALITY_ID] => ‘’
Merci pour vos conseils,
jean-marc
22 nov. 2017 à 21:27
Tu es meilleur que moi pour les recherches !!!
En effet, je suis allé, il y a 1h, sur "http://regexstorm.net/tester" pour tester .
Le plus "dur" est d'écrire le pattern, je vais tester.
Merci et bonne soirée.
jean-marc
22 nov. 2017 à 22:58
Mais je ne te donnerais pas l'adresse de la colline ;)
22 nov. 2017 à 23:03