2014-04-02 20 views
1

開發環境中的app/cache/dev/sessions/sess_{session_id}文件中的Symfony商店會話。該文件的內容是一樣的東西:如何從文件中反序列化Symfony會話?

_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

我該如何解除這個問題?

+0

的symfony本身提供的序列化和反序列化,如果你試圖讓內容不反序列化呢? – ponciste

+0

我嘗試使用這個Symfony會話背後的框架,我需要'IsAuthorized'值 –

回答

0

您可以使用標準的PHP會話機制。您需要設置存儲會話的目錄(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框架會議工作(如OP需要)一起使用。要使用Symfony的會話機制,你應該Session對象,將提供所有必要的信息工作:

use Symfony\Component\HttpFoundation\Session\Session; 

$session = new Session(); 
$session->start(); 

$session->all(); // will return unserialized array of parameters 
+0

但我該怎麼做呢? –

+0

我更新了我的答案,舉例說明。所有你需要的你可以在這裏找到:http://www.php.net/manual/en/book.session.php –

+0

謝謝!我會理解 –