Symfony 将 session 存储在开发环境中的 app/cache/dev/sessions/sess_{session_id}
文件中。该文件的内容类似于:
_sf2_attributes|a:0:{}_sf2_flashes|a:0:{}_sf2_meta|a:3:{s:1:"u";i:1396424236;s:1:"c";i:1396360957;s:1:"l";s:1:"0";}bbb|i:222;IsAuthorized|b:1;
当我尝试使用 unserialize()
函数对其进行反序列化时 - 我得到了 FALSE
。
我如何反序列化它?
最佳答案
您可以只使用标准的 PHP session 机制。您需要设置存储 session 的目录 (app/cache/dev/sessions
)。然后调用标准函数 session_start()
将使用适当文件中的所有未序列化数据填充 $_SESSION
变量。
例如,您可以使用此代码:
ini_set('session.save_handler', 'files');
ini_set('session.save_path', 'path/to/your/site/folder/app/cache/dev/sessions');
session_start();
当您需要在 Symfony 框架后面使用 session 时(根据 OP 的需要),可以使用上述方法。要使用 Symfony 的 session 机制,您应该使用 Session
对象,它将为您提供所有需要的信息:
use Symfony\Component\HttpFoundation\Session\Session;
$session = new Session();
$session->start();
$session->all(); // will return unserialized array of parameters
关于php - 我如何从文件中反序列化 Symfony session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22805100/