Daniel: Flatfile DB

hi,
gibt es eine bessere lösung als diese

  
$dm = fopen("datei.ini", "r");  
$daten = array();  
$key = 0;  
while($zeile = fgets($dm, 10000))  
{  
  $zeile = trim($zeile);  
  $lposition = strlen($zeile)-1;  
  if($lposition>=1)  
  {  
    if($zeile[0] == "[" && $zeile[$lposition] == "]")  
    {  
      $key = $zeile;  
      $key = str_replace("[", "", $key);  
      $key = str_replace("]", "", $key);  
    }  
    else  
    {  
      $daten[$key][] = $zeile;  
    }  
  }  
}  

um eine datei mit dem aufbau:

[Empfaenger]
test1@irgendwo.web
test2@irgendwo.web
test3@irgendwo.web

[Absender]
info@seite.de

auszulesen um als ergebniss solch ein array zu bekommen?

Array
(
    [Empfaenger] => Array
        (
            [0] => test1@irgendwo.web
            [1] => test2@irgendwo.web
            [2] => test3@irgendwo.web
        )

[Absender] => Array
        (
            [0] => info@seite.de
        )

)

MfG

  1. Jepp,
    parse_ini_file z.B. :)

    MfG

    --
    ie:{ fl:( br:^ va:} ls:[ fo:| rl:? n4:# ss:) de:] js:| ch:] mo:| zu:}
    1. Hi,

      parse_ini_file z.B. :)

      nein nicht direkt, da müsste ich dann in der .ini

      [Empfaenger]
      1 = adresse1@ww.web
      2 = adresse2@ww.web

      machen, das will ich aber nicht. zumindest empfinde ich es als
      unpraktisch da es ja änderungen geben kann.

      MfG

      1. Hi,
        na denn weiss ich auch nicht.
        Was hast du denn gegen deine Lösung?

        MfG

        --
        ie:{ fl:( br:^ va:) ls:[ fo:| rl:? n4:( ss:) de:] js:( ch:? sh:) mo:| zu:)
        1. Hi,

          Was hast du denn gegen deine Lösung?

          sie ist von mir, daher gibt es sicherlich eine bessere. Wenn nicht, dann
          bin ich richtig stolz auf mich. Hab ich zum erstenmal einen nicht
          verbesserungsmöglichen code entworfen. wobei sich meiner meinung nach
          alles verbessern läßt, und wenns nur für einen ganz speziellen fall
          besser ist. es geht immer besser und ich bin ehrgeizig genug um super
          tollen code zu programmieren. der nichtmehr weiter verbessert werden kann.

          MfG

          1. OK, wenn du es ein bisschen kürzer haben willst ;)

            [code=php]
            $lines = file("bla.ini");
            $daten = array();
            $key = "";
            foreach($lines AS $zeile)
            {
            $zeile = trim($zeile);
            if(strstr($zeile,'['))
            {
              $key = substr($zeile, 1, -1);
            }
            elseif (!empty($zeile))
            {
              $daten[$key][] = $zeile;
            }
            }
            [/code]

            MfG

            --
            ie:{ fl:( br:^ va:) ls:[ fo:| rl:? n4:( ss:) de:] js:( ch:? sh:) mo:| zu:)
            1. Hi,
              das spart ne menge code. und ergibt genau das gleiche. auch wenn ich foreach und seine arbeitsweise trotz lesen des manuals und der Beispiele
              noch nicht so ganz verstanden habe.

              MfG