Hallo Community,
Ich möchte gerne alle Dateien innerhalb eines Verzeichnisses mit einem PHP-Skript einlesen und alle Werte mit den zugehörigen Schlüsselworte als Keys pro Datei in ein Array speichern.
(Bsp. $array[host_name] = test-pc1)
Den Werte des Arrayfeldes "$array[host_name]" würde ich gerne ich einer Auswahlliste anzeigen. (für jede Datei soll ein eigenes Array erstellt werden).
Die Ausgangsdatei sieht wie folgt aus:
(Die Reihenfolge und Position der Schlüsselworte ist unterschiedlich. Das umschließende "define host{}" ist immer gleich.)
Meine bisherigen Überlegungen bezüglich des PHP-Codes.
ich vermute dass ich zwei Array benötigt:
-eines mit den gesamten Daten eines Hostes
-eines mit den gesamten hostnames
Meine Idee für das Anzeigen der Hostnames im Auswahlemnu:
Die Datei "host.php" ist auch die Datei welche die Daten auslesen soll.
Für das Einlesen der Dateinamen habe ich folgenden Ansatz:
Variable "$dir_hosts" wird in der Datei index.php definiert und von dort übernommen.
Wäre für Unterstützung dankbar.
Ich möchte gerne alle Dateien innerhalb eines Verzeichnisses mit einem PHP-Skript einlesen und alle Werte mit den zugehörigen Schlüsselworte als Keys pro Datei in ein Array speichern.
(Bsp. $array[host_name] = test-pc1)
Den Werte des Arrayfeldes "$array[host_name]" würde ich gerne ich einer Auswahlliste anzeigen. (für jede Datei soll ein eigenes Array erstellt werden).
Die Ausgangsdatei sieht wie folgt aus:
Code:
define host{ use generic-host hostgroups windowsserver,testserver host_name test-pc1 contact_groups testcontact1,contact2 address 192.168.77.6 check_command check-host-alive parents server01 max_check_attempts 5 }
(Die Reihenfolge und Position der Schlüsselworte ist unterschiedlich. Das umschließende "define host{}" ist immer gleich.)
Meine bisherigen Überlegungen bezüglich des PHP-Codes.
ich vermute dass ich zwei Array benötigt:
-eines mit den gesamten Daten eines Hostes
-eines mit den gesamten hostnames
Meine Idee für das Anzeigen der Hostnames im Auswahlemnu:
PHP-Code:
<html>
<head>
<title> </title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<?php
<form action="host.php" method="post">
<p><select name="hostname">
for ($i=0; $i < count($file); $i++)
{
<option value="$file[$i]"> $file[$i] </option>
}
</select></p>
<p> <input type="submit" />
</form>
$verzeichnis = "$dir_hosts";
if ( is_dir ( $verzeichnis ))
{
if ( $handle = opendir($verzeichnis) )
{
// einlesen der Verzeichnisses
while (($file = readdir($handle)) !== false)
{
$file = $filelist[];
return $file;
}
closedir($handle);
}
}
foreach($file as $key=>$value)
{
$userdatei = fopen("$value","r");
while(!feof($userdatei))
{
$zeile[] = fgets($userdatei,1024);
//mittels $preg_match nach "define{" suchen und nchfolgende zeilen bis "}" einlesen
}
fclose($userdatei);
}
?>
</body>
</html>
Für das Einlesen der Dateinamen habe ich folgenden Ansatz:
Variable "$dir_hosts" wird in der Datei index.php definiert und von dort übernommen.
Wäre für Unterstützung dankbar.
Kommentar