Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Daten einer Textdatei -> Variablen zuweisen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Daten einer Textdatei -> Variablen zuweisen

    Hallo zusammen,

    ich versuche gerade eine Art Konfigurationsdatei für meine Webanwendung zu erstellen.
    In einem Textfile (hier: config.inc) sollen grundlegende Daten abgespeichert werden.
    Mit 'fwrite' werden die Daten aus einem Formular in das Textfile geschrieben.
    Bei Aufruf meiner Seiten sollen diese Daten sollen ausgelesen und weiteren Nutzung in entsprechende Variablen übergeben werden.


    Code:
    If (isset($_POST['save'])) 		// Datensatz speichern
    {
      $filename = 'config.inc'; 
      // Datei wird zum Schreiben geöffnet
      $handle = fopen ( $filename, "w" );
      $data = "Test1: [" . $_POST['Feld1'] . "]\n" 
      . "Test2: [" . $_POST['Feld2'] . "]\n" 
      . "Test3: [" . $_POST['Feld3'] . "]\n" 
      . "Test4: [" . $_POST['Feld4'] . "]
      ";
     
      // schreiben des Inhaltes von $data
      fwrite ($handle, $data);
      
      // Datei schließen
      fclose ($handle);
     
      $textfile = fopen ($filename, 'r'); 
      $text = fread($textfile, filesize($filename)); 
      echo $text;
      fclose($textfile); 
      exit;		
    }
    Ausgabe $text:
    Test1: [TextvonFeld1]Test2: [TextvonFeld2] Test3: [TextvonFeld3] Test4: [TextvonFeld4]

    Die Daten werden wie folgt im Textfile abgelegt:
    Test1: [TextvonFeld1]
    Test2: [TextvonFeld2]
    Test3: [TextvonFeld3]
    Test4: [TextvonFeld4]

    Wie kann ich die Feldwerte (in den Eckigen Klammern) den jeweils entsprechenden Variablen zuordnen.

    PHP-Code:
    $test1 "TextvonFeld1";
    $test2 "TextvonFeld2";
    $test3 "TextvonFeld3";
    $test4 "TextvonFeld4"

    Wäre schön wenn mir jmd bei der Realisierung helfen könnte:
    Gruß
    Heavy-Dee

  • #2
    Die Daten werden wie folgt im Textfile abgelegt:
    Code:
    Test1: [TextvonFeld1]
    Test2: [TextvonFeld2]
    Test3: [TextvonFeld3]
    Test4: [TextvonFeld4]
    Warum dieses eigenbrödel-Format?, Warum kein JSON, oder ein serialisiertes PHP-Array, INI, etc..?
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Du könntest das Format einer INI Datei übernehmen und dann parse_ini_file() benutzen, was dir die gesamte Arbeit abnehmen würde.
      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

      Kommentar


      • #4
        @ lstegelitz

        wahrscheinlich ist das genau was ich gesucht habe. Wusste nur nicht wonach ich suchen sollte.
        schau#s mir mal an.
        Danke für den Tipp
        Gruß
        Heavy-Dee

        Kommentar


        • #5
          ... war genau das !!!
          Besten Dank.
          Gruß
          Heavy-Dee

          Kommentar


          • #6
            You're welcome
            Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

            Kommentar


            • #7
              ... leider zu früh gefreut.

              Habe es wie folgt versucht

              PHP-Code:
              $ini_array parse_ini_file('config.ini'true);

              echo 
              nl2br(print_r($ini_array,true));     //Ausgabe Array: [Input1] => ABC 

              $Input1 $ini_array['Gruppe1']['Input1'];    // vorhanderner Wert aus config.ini -> wird als value für Eingabefeld verwendet (Bsp. ABC)

              If (isset($_POST['save']))         
              {
                  
              $var $_POST['Input1'];    // geänderter Wert aus Eingabefeld (Bsp. ABCDEF)
               
                  
              $ini_array['Gruppe1']['Input1'] = $var;        // Zuweisung geänderter Wert in Array
                  
                  
              $new_ini_array fopen('config.ini''w'); // neues Array wird mit geändertem Wert erstellt

                  
              foreach($ini_array AS $section_name => $section_values
                  { 
                      
              fwrite($new_ini_array"[$section_name]\r\n"); 

                      foreach(
              $section_values AS $key => $value
                      { 
                          
              fwrite($new_ini_array"$key = $value\r\n"); 
                      } 

                      
              fwrite($new_ini_array"\r\n"); 
                  } 

              fclose($new_ini); 

                  }
                  
              echo 
              nl2br(print_r($ini_array,true));     //Ausgabe Array mit geändertem Wert: [Input1] => ABCDEF 
              Im Eingabefeld wird der aktuell eingetragene Wert angezeigt ( die Ausgabe des Arrays zeigt den ursprünglichen Wert).
              Daten in Feld geändert und gesendet.
              Nach dem Senden springt der Value Wert des Eingabefeldes wieder zurück auf den ursprünglichen. -> Wert in ini-file nicht geändert.
              ABER:
              Bei der Ausgabe des Arrays wird der eingegebene Wert angezeigt.

              Ergo: Der Wert wird im Array richtig geändert aber nicht in die ini.Datei eingetragen.

              Bitte um Hilfe.
              Gruß
              Heavy-Dee

              Kommentar


              • #8
                PHP-Code:
                $new_ini_array fopen('config.ini''w');
                ...
                fclose($new_ini); 
                Falsches handle geschlossen?
                Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                Kommentar


                • #9
                  wie folgt geändert, ABER keine Besserung:

                  $new_ini_array = fopen('config.ini', 'w');
                  ...
                  fclose($new_ini_array);

                  Gruß
                  Heavy-Dee

                  Kommentar


                  • #10
                    Dann debugge mal die Rückgabewerte von fwrite()... im Fehlerfall liefert es dir FALSE.

                    Und such auch mal im Filesystem, ob da nicht irgendwo anders eine neue config.ini angelegt worden ist.
                    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                    Kommentar


                    • #11
                      so, bin wieder verfügbar.
                      Der Fehler lag in den Zugriffsrechten für das Hostlaufwerk. Mit chmod=777 geht alles.
                      Danke nochmals für die Unterstützung.
                      Gruß
                      Heavy-Dee

                      Kommentar

                      Lädt...
                      X