INF-ähnliche Datei auslesen?

Hi.

Ich möchte eine Datei (egal welche Endung) mit solch einem Aufbau mit PHP auslesen und auswerten:

[Titel1]
Eintrag1
Eintrag2
Eintrag3

[Titel2]
Eintrag1
Eintrag2

Wobei natürlich entweder irgendwo die Anzahl der Einträge je Titel notiert ist, oder die Anzahl irgendwie sonst „errechnet“ wird.
Ich möchte diese Datei zum Speichern von Einstellungen verwenden.
Ich hoffe eine schnelle Hilfe…

MfG
Markus

Hi,

soweit ich weiss, ist der Zeilenwechsel mit dem Hexcode 13h anzusprechen… das heisst, zwecks ausgabe suchst du in einer Datei nach den Sektionen, welche mit ner eckigen Klammer beginnen und mit dem Zeichen 13h aufhoeren, und wechselst solange abwaerts, bis eine Leerzeile kommt. Zweckmaessigerweise sollte man die mit einem Leerzeichen fuellen (so kann man nach Leerzeichen + 13h suchen).

Ist leider keine fertige Loesung, aber schon mal ein Ansatz…

Ein zweiter waere, die Datei zeilenweise in ein Array mithilfe von file() einzulesen. Dieses Array laesst sich dann ja ebenfalls nach den SektionenAnfang durchsuchen. Die Sektionenueberschrift bis zur naechsten Sektionenueberschrift waere dann ein anderes Array namens Sektion1, usw…

Hoffe, das bringt Dich weiter… Ich habe auf meiner Homepage ein Dokument namens SelfPHP http://www.computerjockey.de/ftp/selfphp.chm

cu,
cjmatsel

Hi.

Ich möchte eine Datei (egal welche Endung) mit solch einem
Aufbau mit PHP auslesen und auswerten:

[Titel1]
Eintrag1
Eintrag2
Eintrag3

[Titel2]
Eintrag1
Eintrag2

Einlesen:

$fp=fopen(„file“,„r“) or die();
$data="";
$section="#";
while(!feof($fp)) {
$z=fgets($fp,1024);
if (preg_match("/^(#|:wink:/", $z)) continue; # Kommentare
if (preg_match("/^\s*$/",$z)) continue; # Leerzeilen
if (preg_match("/^[(.*)]$/", $z, $res)) {
$section = $res[1]; # Abschnitt
continue;
};
$data[$section][] = $z;
}
fclose($fp);

Ausgeben:
foreach ($data as $section => $keys) {
foreach($keys as $key) {
echo „$section: $key\n“;
}}

count($data) -> Anzahl der Sections, count($data[‚Titel1]‘) -> Anzahl der Elemente in „Titel1“

Alexander