如何从解密字符串中读取数据


How to read data from a decrypted string

string(284) "a:4:{s:10:"session_id";s:32:"01a046827a00cf838a1b3ce585cc82fb";s:10:"ip_address";s:13:"124.43.56.156";s:10:"user_agent";s:120:"Mozilla/5.0 (Windows; U; Windows NT 6.2; en-US) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27";s:13:"last_activity";i:1371099813;}"

这是来自CodeIgniter的解密cookie。我需要从这里获取数据。最好转换为数组或易于访问的东西,如data -> session_id。从这里提取数据的可能方法是什么?

取消序列化。

var_dump( unserialize('a:4:{s:10:"session_id";s:32:"01a046827a00cf838a1b3ce585cc82fb";s:10:"ip_address";s:13:"124.43.56.156";s:10:"user_agent";s:120:"Mozilla/5.0 (Windows; U; Windows NT 6.2; en-US) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27";s:13:"last_activity";i:1371099813;}'));

这是一个序列化字符串,调用unserialize

$array = unserialize($string);

然后返回数组:

Array
(
    [session_id] => 01a046827a00cf838a1b3ce585cc82fb
    [ip_address] => 124.43.56.156
    [user_agent] => Mozilla/5.0 (Windows; U; Windows NT 6.2; en-US) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27
    [last_activity] => 1371099813
)

使用unserialize将序列化字符串转换为数组

   $arr = unserialize($string);
   print_r($arr) //will display you the array values

我认为这是一个序列化数组。使用反序列化并将其获取到变量

$arr = unserialize($str);