最近,我开始使用Node.js扩展我的网站,并意识到需要一个会话处理程序来处理PHP会话。现在一切都很顺利,Node.js可以读取PHP会话并将其自己的会话与PHP会话一起传播。我正在使用数据库会话,因此会话数据存储在数据库字段中。
但是,我遇到了一个小问题。我试图将会话数据读入Node.js,但它是一个非常奇怪的字符串。我已经能够将每个会话变量的结构确定为:
'field_name'|'type':'length':'value';
对于某些字符串,值字段可能会缺失,对于其他字符串,长度可能会缺失(当变量为 Null 时)。类型也可以不止是 b、s、i;它也可以是 N(NULL)。
我最初考虑过为 JS 制作一个庞大的翻译器,但这似乎是一种非常错误的做法。
这里有人尝试过在 JS 中提取 PHP 会话变量吗?是否有任何脚本可以帮助?也许有一些在 PHP 端可以使用的格式化工具可以使我的生活在 node.js 中更轻松?
编辑:模式如下:
{ _id: { id: 'L:\u00c1\u009d\u008e\u00ad\u000e}<\u0002\u0000\u0000' }
, session_id: 'a2clfnjhopv1srs5k5elgbfjv5'
, user_id: 0
, session_data: 'logged|b:0;uid|i:0;server_key|N;AUTH_TIER2|b:0;email|s:0:"";cheese|s:6:"cheese";'
, active: 1
, expires: 1278920567
}
这是MongoDB用户会话的记录。需要翻译的字段是session_data。当我尝试将其格式化为代码时,由于某些原因,stackoverflow无法对其进行格式化,出现了某种格式错误。
我之前尝试过将该字段转换为JSON,但失去了其类型并未能读取Null条目,因此我停止了该操作。
谢谢。
json_encode
对其进行编码? - Gordon