Uncaught Ausnahme 'Exception' mit Nachricht 'Serialisierung von' SimpleXMLElement 'ist nicht erlaubt'

7

Ich bin mir nicht sicher, warum es so weit geht. Ich bin nicht Serialisierung der XML, aber mein Array, das ich von einem RSS-Feed erstellt habe (beachten Sie, dass dies nur ein Ausschnitt ist):

%Vor%

Dann serialisiere ich es $some_var = serialize($game_data) und schreibe in eine Textdatei fputs($fh,$some_var) .

Aber es kommt nicht so weit, es gibt Fehler in der Serialisierungszeile aus:

  

Uncaught Ausnahme 'Exception' mit Nachricht 'Serialisierung von' SimpleXMLElement 'ist nicht erlaubt'

    
user761088 19.05.2011, 12:56
quelle

2 Antworten

25

Sie müssen die XML-Daten in eine Zeichenfolge umwandeln, da intern alle SimpleXMLElement s sind.

%Vor%

Oder vielleicht ein bisschen eleganter:

%Vor%     
Stefan Gehrig 19.05.2011 12:59
quelle
3

In den Dokumenten zu Klassen und Objekten gibt es Folgendes: Um ein Objekt zu deserialisieren (), muss die Klasse dieses Objekts definiert werden.

Vor PHP 5.3 war dies kein Problem. Aber nach PHP 5.3 kann ein von SimpleXML_Load_String () erzeugtes Objekt nicht serialisiert werden. Ein Versuch, dies zu tun, wird zu einem Laufzeitfehler führen und eine Ausnahme auslösen. Wenn Sie ein solches Objekt in $ _SESSION speichern, erhalten Sie einen Fehler nach der Ausführung, der besagt:

Fataler Fehler: Uncaught Ausnahme 'Exception' mit Nachricht 'Serialisierung von' SimpleXMLElement 'ist nicht erlaubt in [keine aktive Datei]: 0 Stack Trace: # 0 {main} in [keine aktive Datei] in Zeile 0

Der gesamte Inhalt der Sitzung geht verloren. Hoffe das spart jemandem etwas Zeit!

%Vor%

Von: Ray.Paseur

Hinweis: Ссылка

Was ich mache ist wie 'Stefan Gehrig' gesagt hat, die XML-Daten in eine Zeichenkette umwandeln

%Vor%     
abdulwadood 19.01.2015 09:44
quelle