Serialize Problem

TvP

Erfahrenes Mitglied
Hallo Community.

Ich habe ein kleines Problem mit der Serialize-Funktion.
Wenn ich bestimmte Zeichen innerhalb einer Zeichenkette enthalten habe,
bekomme ich für die Unserialize-Funktion FALSE statt dem Wert zurück.
Bei folgenden Zeichen habe ich bisher Probleme: # " {}

Nun ist die Frage:

- Hat wer schonmal Probleme damit gehabt?
- Gibt es eine Möglichkeit, z.B. Maskieren um das Problem zu umgehen?

PS: Auch komplexe Arrays und Objekte werden ja serialisiert.
 
Kannst du mal ein Beispiel nennen? Und stammt ein solcher Beispielwert von der serialize()-Funktion?
 
Hast du PHP3 ? :p
Oder versuchst ein in PHP3 serialisiertes Object in PHP4 zu "entserialisieren" ?
So ein Bug gab es mal das dann auf einmal ein Boolean-Werst raus kam.

Allerdings klappt das mit den von dir genannten Zeichen ganz gut:
PHP:
$s = 'dies ist "ein string" mit einer  # {Raute}';
$u = serialize($s);
echo $u, "\n", unserialize($u);

False kommt bei unserialize oft wenn der String länger als die angegebene Länge ist. Das kann passieren wenn er aus einer Datenbank kommt, oder noch Magic-Quotes drin hat:
http://bugs.php.net/bug.php?id=1693 hat gesagt.:
file contents: O'Reilly
retrieved from file: O\'Reilly
serialized: s:9:"O\'Reilly";
stored in db: s:9:\"O\'Reilly\";
after stripslashes(): s:9:"O'Reilly";

Vielleicht ist das bei deinem ja der Fall.
 
Zuletzt bearbeitet:
Zurück