php - 我如何从文件中反序列化 Symfony session ?

标签 php session symfony serialization

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/

相关文章:

symfony - 为什么安装后无法访问symfony?这是我收到的消息 : "-bash: symfony: command not found"

c# - 使用 C Sharp 或 PHP 执行 Google 文本搜索?

session - RPX 代币 URL 问题

php - 查询匹配多个关键字并显示结果?

php - Laravel 5.1 - 每次刷新都会重新生成 session

javascript - 对象解构分配的任何方面都是通过引用进行的吗?

php - 如何禁止 Symfony2 中授权用户的访问?

php - 无法生成表 "user"

PHP MySql 百分比

php - 如何为 Mandrill API 创建动态数组