Datei auslesen und schreiben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datei auslesen und schreiben

    Hallo,
    ich hab schon auf php.net geschaut, aber nichts gefunden. jetzt frag ich euch mal. besteht die möglichkeit, mit


    $fp = fopen (test.txt, "r+");
    $inhalt = fread ($fp, "10");

    anzugeben, welche zeile er auslesen soll? ich kann ja nur den datenzeiger an den anfang oder an das ende der datei setzen.

    ich möchte nämlich eine konfigurationsdatei machen, aus der php die daten einliest. aber es wäre für mich hilfreich, wenn man eine zeile angeben kann, oder ähnliches.

    oder hat mir vllt jmd eine andere möglichkeit um sowas zu verwirklichen?

    Danke
    Gruß ottscho

  • #2
    du kannst das so machen:

    PHP-Code:

    <?
    $filename = "hallo.txt";
    $handle = fopen ($filename, "r");
    $contents = fread ($handle, filesize($filename));
    fclose ($handle);

    $arr_einstellungen = explode (";", $contents);

    for($i=0; $i<count($arr_einstellungen); $i++)
      {
      $var_variable = explode ("=", $arr_einstellungen[$i]);
      $arr_eigenschaften[$var_variable[0]] = $var_variable[1];
      }

    var_dump($arr_eigenschaften);
    ?>

    Dann muss die hallo.txt so ausehen (Beispiel):

    test1=test;
    2=45;
    test3=df;
    test3=df;
    tet5=45;

    Als zuweisung ein = und als trennzeichen ein ;

    im array $arr_eigenschaften haste denn alles drin!
    Beziehung? Klar habe ich mit Beziehungen zu tun ... ich bin Datenbankprogrammierer :-D

    Kommentar


    • #3
      @hoffmann-c
      danke, hab es gerade ausprobiert.
      meine datei sieht so aus:

      Server_AV=192.168.2.210;
      User_AV=test;
      PW_AV=test;
      DB_AV=PIS;

      Server_Apertum=benzw2srv3;
      User_Apertum=OTT_TEST;
      PW_Apertum=benzing;
      DB_Apertum=IDATEST;

      wenn ich nun dein script nehme, und var_dump($arr_eigenschaften);
      benutze. zeigt es mir alles korrekt aus dem array an.
      wenn ich nun echo $arr_eigenschaften[Server_AV); eingebe, kommt auch der dazugehörige eintrag. mache aber aber z.B. $arr_eigenschaften[User_AV) oder $arr_eigenschaften[PW_AV), erhalte ich eine leere ausgabe, obwohl die daten im array stehen.

      was mache ich falsch?

      gruß

      Kommentar


      • #4
        habe den code noch ein bisschen verändernt

        PHP-Code:

        <?
        $filename = "hallo.txt";
        $handle = fopen ($filename, "r");
        $contents = fread ($handle, filesize($filename));
        fclose ($handle);

        $arr_einstellungen = explode (";", $contents);

        for($i=0; $i<count($arr_einstellungen); $i++)
          {
          $var_variable = explode ("=", $arr_einstellungen[$i]);
          $arr_eigenschaften[trim($var_variable[0])] = $var_variable[1];
          }

        var_dump($arr_eigenschaften);

        echo $arr_eigenschaften['PW_AV'];
        ?>

        habe ein trim() hinzugefügt

        jetzt geht es
        Beziehung? Klar habe ich mit Beziehungen zu tun ... ich bin Datenbankprogrammierer :-D

        Kommentar


        • #5
          Wäre parse_ini_file() hier nicht passender?

          Kommentar


          • #6
            Original geschrieben von onemorenerd
            Wäre parse_ini_file() hier nicht passender?
            stimmt!
            wusste nur nicht das es dieser Funktion gibt!

            Hab dann also ein scirpt gebaut was auch geht.

            Kannst also beides nehmen!
            Beziehung? Klar habe ich mit Beziehungen zu tun ... ich bin Datenbankprogrammierer :-D

            Kommentar


            • #7
              danke, funktioniert bestens mit parse_ini_file() .
              jetzt hab ich nur noch ein problem.
              ich hab es jetzt mit $ini_array = parse_ini_file("sample.ini", TRUE); gemacht, aber nun hab ich probleme die einzelen daten rauszulesen, wie mache ich es den?

              ich erhalte folgendes:

              Array ( [DB_AV_Information] => Array ( [Server_AV] => 192.168.2.210 [User_AV] => test [PW_AV] => test [DB_AV] => PIS ) [DB_Apertum_Information] => Array ( [Server_Apertum] => benzw2srv3 [User_Apertum] => OTT_TEST [PW_Apertum] => benzing [DB_Apertum] => IDATEST ) )

              nun weiß ich aber nicht weiter.
              so geht es ja nicht echo $array_name[DB_AV] oder $array_name[DB_AV_Information[DB_AV]]

              Danke euch vielmals.

              Gruß

              Kommentar


              • #8
                Steht alles auf http://php.net/manual/en/language.types.array.php (multi-dimensional arrays).

                Kommentar


                • #9
                  danke

                  Kommentar

                  Lädt...
                  X