Пример #1
0
 /**
  * Reverse of dumps, throw an Exception in case of bad signature.
  *
  * @param string Signed key
  * @param string Key (null)
  * @param string Extra key ('')
  * @return mixed The dumped signed object
  */
 public static function loads($s, $key = null, $extra_key = '')
 {
     if ($key === null) {
         $key = Pluf::f('secret_key');
     }
     $base64d = self::unsign($s, $key . $extra_key);
     $decompress = false;
     if ($base64d[0] == '.') {
         // It's compressed; uncompress it first
         $base64d = substr($base64d, 1);
         $decompress = true;
     }
     $serialized = Pluf_Utils::urlsafe_b64decode($base64d);
     if ($decompress) {
         $serialized = gzinflate($serialized);
     }
     return unserialize($serialized);
 }