serialize in flatfile speichern - Problem mit langen strings

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

  • serialize in flatfile speichern - Problem mit langen strings

    Hallo,

    hab' da folgendes Problem: Bastel gerade ein sehr kleines Forum, in dem die einzelnen Einträge als array via serialize() als string verschlüsselt werden.
    Diesen string speicher ich einfach als flatfile.

    Wird nun im array ein string mit ca. mehr als 600 Zeichen (lässt sich nicht so genau feststellen, wo von es noch abhängt) gespeichert, und dieses array halt mit serialize codiert und in neuerstellte, leere Datei gespeichert, geht auch noch alles.
    Wenn ich die Daten mit unserialize wieder herstellen möchte, klappst nicht.
    Schätze das Problem liegt an automatischen Zeilenenden/ Umbrüchen in der flatfile, die als Zeichen mitzählen, und dadurch die string-Längenangabe im serialize verfälschen.
    Kenn' mich damit aber nicht so aus, vielleicht hat ja jemand einen Tipp?

    (Ist das erste mal bei meinem Provider (Unix) aufgetreten, dann hab ich es unter Windows probiert, auch der Fehler... (PHP 4.3.8.))

    Werden nur kürze strings beliebiger Anzahl verwendet, gibt's keine Probleme.

    Ich komm da echt nicht weiter...

  • #2
    Speicher die Beiträge als BLOB oder TEXT

    cya max


    An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

    Kommentar


    • #3
      wie sieht denn dein Code aus?

      Kommentar


      • #4
        Original geschrieben von MaxP0W3R
        Speicher die Beiträge als BLOB oder TEXT

        cya max
        in einer Datei? wie geht das?

        Kommentar


        • #5
          Also der Code sieht im Prinzip folgendermaßen aus:
          PHP-Code:
          $string serialize($datenarray);
          $stream fopen ($datei'wb');
          fwrite ($stream$string);
          fclose ($stream); 
          Wie gesagt, mit kürzeren Arrayinhalten kein Problem, erst so ab ca. 600 Zeichen langen Strings.

          Muss also wohl irgendwie am Dateisystem liegen...

          Kommentar


          • #6
            Original geschrieben von Reverend
            Also der Code sieht im Prinzip folgendermaßen aus
            das war das schreiben, also der eher uninteressante teil - wo ist das wieder-auslesen?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Oh ja, ganz vergessen...
              Der Auslesen-Teil sieht nun so aus:
              PHP-Code:
              $stream fopen ($datei,'rb');
              $daten fread ($streamfilesize ($datei));
              fclose ($stream);
              $datenarray unserialize ($daten); 
              Und schon steht alles wieder in $datenarray (fast zumindest)

              Kommentar

              Lädt...
              X