Ich habe ein seltsames Problem in PHP 5.2.6, Serialisierung von Objekten.PHP serialisiert geschützte Klassenvariablen mit falscher Zeichenanzahl?
Scheinbar speichert PHP geschützte Variablenmitglieder mit einem Sternchen vor seinem Namen. Das ist normal und richtig, aber schauen Sie sich das folgende Beispiel:
O:18:"object__songChords":1:{s:9:"*chords"}
* Akkorde nicht 9 Zeichen enthält, aber 7 (mit dem Stern).
Natürlich nahm ich an, dass es einige Missverständnisse auf meiner Seite gibt, und dass PHP nur die Anführungszeichen zählt, aber wenn ich das mit anderen gespeicherten Strings vergleiche, finde ich, dass dies nicht der Fall ist.
Bottomline ist, dass PHP diese Objekte nicht derialisieren kann, obwohl die Klassen nicht geändert haben.
Notice: unserialize(): Error at offset 43 of 867 bytes in ...
Kann mir jemand einen Einblick geben?
EDIT (vorausgesetzt, die Klasse)
class object__songChords {
protected $chords;
protected $lyrics;
}
Bitte beachten Sie, dass ich das oben Serialisierung Beispiel aus Gründen der Einfachheit beraubt - die tatsächliche Serialisierung Zeichenfolge enthält natürlich beiden Eigenschaften.
können Sie stellen die Klasse zur Verfügung? und die Daten als Beispiel PHP-Datei? –
Ja, ich habe gerade die Frage bearbeitet – SquareCat
Sind Sie sicher, dass dies die vollständige serialisierte Zeichenfolge ist? –