Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] "doppeltes" Parsen eines String

Einklappen

Neue Werbung 2019

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

  • [Erledigt] "doppeltes" Parsen eines String

    Hallo und guten Tag!

    Ich habe folgendes Problem:
    Mit fwrite() schreibe ich eine Tab-separierte Textdatei.
    Die Struktur ansich ist klar, aber erst beim Lesen einer konkreten Quelldatenbank (Firebird) kann die Anzahl bestimmter (variabler) Felder bestimmt werden (z.B. die Anzahl von Kommunikationsverbindungen einer Person).
    Also ermittle ich diese zunächst und passe im Programm den String für den Kopf der Textdatei entsprechend an. Gleichzeitig erzeuge ich in einer Variablen die Variablenbezeichner, die die Daten dazu enthalten.
    Sieht etwa so aus: $Zusatz_Var="$zusatz_var1\t$zusatz_var2\..."
    Soweit so gut.
    Mein fwrite() sieht in etwa so aus:
    fwrite(filehandle,"$var1\t$var2\t$var3\t"."$Zusatz _Var");

    PHP macht nun genau was es machen soll: es parst $Zusatz_Var und fwrite() schreibt mir die Variablennamen in die Datei. Ich würde aber gern den Inhalt der Variablen, deren Namen in $Zusatz_Var stehen, in die Datei schreiben ...

    Kann mir jemand einen Tip geben? Vielen Dank!!


  • #2
    Da ist ein Leerzeichen vor dem _, außerdem gehören Variablen NICHT gequotet. Wenn du Variablen innerhalb eines Strings verwenden möchtest ist das noch ok (wie beim ersten Teil) allerdings solltest du keine Quotes verwenden, wenn du nur den Variableninhalt haben willst (wie beim zweiten teil).
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Das würde mit eval() gehen, ABER lass es besser. Das Problem lässt besser mit einem Array und einer Schleife lösen.

      Kommentar


      • #4
        Nutze die CSV-Funktionalität der f*-Familie um Tab-separierte Daten zu schreiben. Dort übergibst du dann einfach nur Arrays.
        [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

        Kommentar


        • #5
          ja, da hast du recht, aber nur hier. Im Programm fehlt der Sace.

          Was dein Hinweis mit dem Quting angeht, hab ich mich vielleicht blöd ausgedrückt: fwrite() erwartet als 2. Parameter einen String. Zwischen die Variablen muss ich immer noch den TAB einfügen. Deshalb mein Quoting mit "".

          Der erste Teil haut auch hin. Problem ist, das beim parsen der Variable $Zusatz_Var deren Inhalt (das sind die zusätzlichen Variablennamen, die eigentlich noch hätten geparst werden müssen) in den String rutschen und NICHT der Inhalt dieser Variablen. Daran ändert sich auch nichts, wenn ich auf das Quoting verzichte. Leider.

          Ich hoffe nun ist es klarer ...

          Kommentar


          • #6
            Ich bleib bei meiner Aussage. Mach es dir nicht schwerer als es ist.
            [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

            Kommentar


            • #7
              Gleichzeitig erzeuge ich in einer Variablen die Variablenbezeichner, die die Daten dazu enthalten.
              Dort gilt es anzusetzen, Hinterher ist alles zu spät.
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar


              • #8
                Hallo Tr0y,

                Zitat von tr0y Beitrag anzeigen
                Nutze die CSV-Funktionalität der f*-Familie um Tab-separierte Daten zu schreiben. Dort übergibst du dann einfach nur Arrays.
                ein fgetcsv() hab ich gefunden, aber ein fputcsv() bisher nicht ...
                Kannst du mir einen Hinweis mehr geben, meine Daten kommen aus einem Array.
                Vielen Dank!
                Micha

                Kommentar


                • #9
                  Zitat von micha.tietz Beitrag anzeigen
                  ein fgetcsv() hab ich gefunden, aber ein fputcsv() bisher nicht ...
                  Hmm?!
                  http://de1.php.net/manual/en/function.fputcsv.php
                  Zitat von nikosch
                  Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

                  Kommentar


                  • #10
                    Vielen Dank! Mit fputcsv() alles kein Problem ...

                    Ich schwöre, in meinem O'Reilly fehlt die Funktion. OK: fgetcsv() hätte mich hellhörig machen müssen ...

                    Nochmal Danke und bis zum nächsten Blackout

                    Kommentar

                    Lädt...
                    X