Textdateien mit AS und php auslesen

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

  • Textdateien mit AS und php auslesen

    Hallo,

    ich habe folgendes Problem. In einer Textdatei werden mittels Variablen Werte gespeichert, die dann in Flash via AS ausgelesen werden. (&wert1=value)

    Nun will ich diese Werte über eine php-Oberfäche bearbeiten. Gibt es eine Möglichkeit, wie ich das, was hinter dem "=" steht, seperat auslesen bzw. bearbeiten kann? Bisher habe ich nur die Möglichkeit des zeilenweisen Auslesens gefunden aber da wäre ja immer die Variablendeklaration für AS mit dabei ...

    Ich hoffe, ich habs verständlich ausgedrückt und bin gespannt auf Eure Anregungen ...

  • #2
    httpquerystring

    Kommentar


    • #3
      Ähm ... leider hab ich bisher noch nix mit Klassen zu tun gehabt. Das geht doch auch ohne, oder? Die Fehleranfälligkeit ist in diesem Fall nicht unbedingt relevant ...

      Kommentar


      • #4
        im prinzip schon. müsste sogar eine vergleichbare Funktion geben:

        parse_str
        parse_url
        extract

        Da du die Klasse aber nur (wie eine Funktion) anwenden brauchst, sollte das eigentlich auch kein Hindernis darstellen...

        Kommentar


        • #5
          Hallo,

          spontan fällt mir dazu erst mal preg_match_all ein (reguläre Ausdrücke). Damit kann man erst einen kompletten Satz auslesen (also Variable mit Wert), anschließend nur den Wert mit preg_replace ersetzen. Da müßtest Du Dir was basteln ... ob es hier jemand für Dich tut?

          Gruß php_fussel

          Kommentar


          • #6
            und warum nicht einfach die werte im array bearbeiten?

            Kommentar


            • #7
              Das Bearbeiten ist im Grunde genommen kein Problem weil ich die entprechende Variablenbezeichnung ja einfach vor den Wert packen kann, bevor ich das ganze in die txt-file schreibe.

              Das "Problem" ist eher, wie ich eben jene Bezeichnung "wegschneide" um nur den Wert als vorgegebenen Value in einem Formularfeld einzutragen.

              Ich glaube arrays sind eine möglichkeit ... ich setz mich mal ran ...

              Kommentar


              • #8
                Ach so, Du meinst die Variable als array-key nutzen und den Wert als dazugehörigen ... ja, Wert eben ! Und diesen könnte man dann bearbeiten/ändern ... geht auch! Dann stellt sich die Frage, wie man es anstellt, dass die Werte erst mal ins array kommen!?

                Gruß php_fussel

                Kommentar


                • #9
                  Über die fWrite? so ganz spontan jetzt ...

                  Kommentar


                  • #10
                    Dann stellt sich die Frage, wie man es anstellt, dass die Werte erst mal ins array kommen!?
                    Fussel, lies doch einfach den Thread noch einmal von Anfang an durch. Die Lösungen stehen schon in diversen Ausführungen dort!

                    Über die fWrite?
                    Einlesen funktioniert über fWRITE denkbar schlecht. Das rückschreiben des Arrays nachher in die Datei kann natürlich so funktionieren.

                    Kommentar


                    • #11
                      Zum Zerlegen von Query-Strings hätte ich folgende Funktion anzubieten.
                      Sie sieht komplizierter aus, als sie ist, weil ein paar Fehler abgefangen
                      und einige Sonderbedingungen beachtet werden:

                      PHP-Code:
                      function aufdroesel(
                        
                      $input '' /// STR
                      ) {
                        
                      $parts preg_split('/[&;]/'$input, -1PREG_SPLIT_NO_EMPTY);
                        
                      $data = array ();
                        foreach (
                      $parts as $part) {
                          @list (
                      $name$value) = preg_split('/=/'$part);
                          
                      // note: rawurldecode() does not work; it ignores '+'-encoded spaces
                          
                      $name_decoded urldecode($name);
                          
                      // handle multiple entries sharing the same $name; eg: &bla=x&bla=y&bla=z
                          
                      if (isset($data[$name_decoded])) {
                            if (!
                      is_array($data[$name_decoded])) {
                              
                      // convert previous entry to LIST and add actual entry
                              
                      $data[$name_decoded] = array ($data[$name_decoded]);
                            }
                            
                      $data[$name_decoded][] = urldecode($value); // add to LIST
                          
                      }
                          else {
                            
                      $data[$name_decoded] = urldecode($value);
                          }
                        } 
                      /// end foreach $parts
                        
                      return $data;
                      }

                      // anwendungsbeispiel:
                      $query '&bla=blo&brat=wurst&bier=fass&novalue=&=noname&=';
                      $array aufdroesel($query);
                      var_dump($array); 
                      Im Kern wird zweimal preg_split() verwendet (prinzipiell würde es auch explode() tun): einmal, um an den '&' aufzutrennen und das zweite mal in der foreach()-Schleife, um an den '=' aufzutrennen.

                      Urldecode() kannst du notfalls auch weglassen, wenn du dir ganz sicher bist, dass $name und $value keine Zeichen enthalten, die Probleme machen könnten -- bspw. '&' und '=', die ja eine Sonderfunktion erfüllen.

                      Das Einlesen aus einer Textdatei gestaltet sich je nach deren Format:
                      Hast du nur eine Zeile mit so einem String, dann genügt im Notfall sowas wie
                      $query_string = trim(file_get_contents($datei));

                      Hast du mehrere solcher Strings zeilenweise hintereinander in der Datei, dann musst du die auch so einlesen. Fgets() wäre hier geeignet.
                      Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                      Kommentar


                      • #12
                        Original geschrieben von fireweasel
                        Zum Zerlegen von Query-Strings hätte ich folgende Funktion anzubieten.
                        Und die soll jetzt was genau besser können als bspw. parse_str?
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          Original geschrieben von wahsaga
                          Und die soll jetzt was genau besser können als bspw. parse_str?
                          Oooch nee, nicht schon wieder:
                          Sie lässt '.' und ' ' in den Namen der Parameter(-Keys) unverändert, wird nicht durch magic_quotes_gpc beeinflusst und verzichtet auf die '[]'-Spielereien.

                          Siehe auch das PHP-Handbuch zu parse_str():

                          Note: The magic_quotes_gpc setting affects the output of this function, as parse_str() uses the same mechanism that PHP uses to populate the $_GET, $_POST, etc. variables.
                          Aber ich vermute mal, das wusstest du alles schon ...
                          Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                          Kommentar


                          • #14
                            Schön und gut - ich meinte nur, in Bezug auf die hier konkret vorliegende Fragestellung ...
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Re: Textdateien mit AS und php auslesen

                              *grml* von wegen "no need to ask questions" ...

                              Original geschrieben von Großer_Meister
                              Schön und gut - ich meinte nur, in Bezug auf die hier konkret vorliegende Fragestellung ...
                              Nun denn will ich mal versuchen, eine eventuell geeignete Vorgehensstrategie mit einfachen Worten zu skizzieren:

                              Original geschrieben von Jule (=== OP)
                              Hallo,

                              ich habe folgendes Problem. In einer Textdatei werden mittels Variablen Werte gespeichert, die dann in Flash via AS ausgelesen werden. (&wert1=value)
                              1.) Text-Datei einlesen ...
                              2.) In assoziatives Array umwandeln bspw. per aufdroesel() ...

                              Nun will ich diese Werte über eine php-Oberfäche bearbeiten. Gibt es eine Möglichkeit, wie ich das, was hinter dem "=" steht, seperat auslesen bzw. bearbeiten kann? Bisher habe ich nur die Möglichkeit des zeilenweisen Auslesens gefunden aber da wäre ja immer die Variablendeklaration für AS mit dabei ...
                              3.) HTML-Formular aus dem assoziativen Array basteln
                              4.) HTML-Formular an einen Browser schicken
                              ...
                              5.) HTML-Formular im Browserfenster editieren -- zumindest assoziiere ich das mit "über eine PHP-Oberfläche bearbeiten".
                              ...
                              6.) Editierte Daten wieder in die Ursprungsform (was Query-String-Ähnliches) bringen
                              7.) Ursprungsform wieder in Datei speichern (per fwrite()? ...)

                              Ich hoffe, ich habs verständlich ausgedrückt und bin gespannt auf Eure Anregungen ...
                              Ich hoffe auch, dass ich mich jetzt verständlich(er als vorher) ausgedrückt habe.

                              Dass wir derzeit noch die Punkte 3 bis 6 offen haben, darf mir aber keiner in die Schuhe schieben ...
                              Zuletzt geändert von fireweasel; 10.03.2009, 18:56.
                              Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                              Kommentar

                              Lädt...
                              X