【发布时间】:2011-06-09 13:33:31
【问题描述】:
PHP unserialize() 函数面临问题,标题为抛出错误。
unserialize() [function.unserialize]: Error at offset 0 of 1781 bytes
我还尝试了返回bool(false)的session_decode()
magic_quotes_gpc 是Off。
嗯,我正在读取序列化文件的内容。文件内容如下所示。
核心|a:3:{s:23:"_session_validator_data";a:4:{s:11:"remote_addr";s:15:"117.241.113.248";s:8:"http_via";s :0:"";s:20:"http_x_forwarded_for";s:0:"";s:15:"http_user_agent";s:90:"Mozilla/5.0 (Windows;U;Windows NT 5.1;en-US; 房车:1.9.2.13)壁虎/20101203 Firefox/3.6.13";}s:13:"session_hosts";a:1:{s:12:"";b:1;}s:8:"messages";O:34:"Mage_Core_Model_Message_Collection":2 :{s:12:"^@*^@_messages";a:0:{}s:20:"^@*^@_lastAddedMessage";N;}}客户|a:3:{s:23:" _session_validator_data";a:4:{s:11:"remote_addr";s:15:"117.241.113.248";s:8:"http_via";s:0:"";s:20:"http_x_forwarded_for";s :0:"";s:15:"http_user_agent";s:90:"Mozilla/5.0 (Windows;U;Windows NT 5.1;en-US; 房车:1.9.2.13)壁虎/20101203 Firefox/3.6.13";}s:13:"session_hosts";a:1:{s:12:"";b:1;}s:19:"wishlist_item_count";i:0;}目录|a: 3:{s:23:"_session_validator_data";a:4:{s:11:"remote_addr";s:15:"117.241.113.248";s:8:"http_via";s:0:"";s :20:"http_x_forwarded_for";s:0:"";s:15:"http_user_agent";s:90:"Mozilla/5.0 (Windows;U;Windows NT 5.1;en-US; 房车:1.9.2.13)壁虎/20101203 Firefox/3.6.13";}s:13:"session_hosts";a:1:{s:12:"";b:1;}s:8:"messages";O:34:"Mage_Core_Model_Message_Collection":2 :{s:12:"^@*^@_messages";a:0:{}s:20:"^@*^@_lastAddedMessage";N;}}结帐|a:3:{s:23:" _session_validator_data";a:4:{s:11:"remote_addr";s:15:"117.241.113.248";s:8:"http_via";s:0:"";s:20:"http_x_forwarded_for";s :0:"";s:15:"http_user_agent";s:90:"Mozilla/5.0 (Windows;U;Windows NT 5.1;en-US; 房车:1.9.2.13)壁虎/20101203 Firefox/3.6.13";}s:13:"session_hosts";a:1:{s:12:"";b:1;}s:8:"messages";O:34:"Mage_Core_Model_Message_Collection":2 :{s:12:"^@*^@_messages";a:0:{}s:20:"^@*^@_lastAddedMessage";N;}}
我的PHP代码如下
$file='/var/www/html/products/var/session/sess_0ehb7ek0hmunqo3kq70t0t6mb0';
$contents=file_get_contents($file);
$data = unserialize($contents);
var_dump($data);
在反序列化数据之前,我已经尝试过stripslashes()。
不确定数据的问题在哪里。
我无法更改将数据存储到文件的机制,因为这是由 Magento 处理的,用于在文件级别管理会话。
【问题讨论】:
-
我不知道为什么,但内容包含 3 个单独的变量(类型 core、customer 和 checkout)。也许这导致了反序列化的问题?
-
@kevin:是的,它包含。有问题吗?
-
我相信(不完全肯定)您一次只能[反]序列化一个变量。您是否尝试过将它们拆分并反序列化?
-
请在此处查看我的解决方案:stackoverflow.com/questions/530761/…
标签: php serialization