我想要存储在会话中的类实例包含一个已加载的DOMDocuments数组。
正如其中一个答案中所述:PHP quirks and pitfalls,当您序列化包含XML的对象时,XML结构在unserialize进程中无法生存。据我所知,PHP5应该自动序列化会话数据,所以我需要知道的是如何使XML在序列化/反序列化过程中生存?
我已经阅读过,看起来它无法完成,加上使用自动序列化/反序列化编写和读取会话文件所涉及的开销似乎使得只需读取和写入XML文件__sleep和__wakeup上的类实例。是这样的吗?
答案 0 :(得分:2)
http://php.net/manual/en/function.serialize.php
这对于存储或传递PHP值非常有用,而不会丢失其类型和结构。
要序列化的值。 serialize()处理除资源类型之外的所有类型。您甚至可以序列化()包含对自身的引用的数组。您正在序列化的数组/对象内的循环引用也将被存储。任何其他参考将丢失。
也许你可以考虑将原始数据存储到memcache,database,
中
当你的会话指向那个(如memcache密钥,数据库行ID)
其他阅读
你可能会对下面的事情感到好笑(也许我错了) -答案 1 :(得分:0)
为什么不简单地export the DOMDocument as a string,然后序列化这个字符串?