예제 #1
0
 public static function restoreGlobals(array $blacklist)
 {
     if (ini_get('register_long_arrays') == '1') {
         $superGlobalArrays = array_merge(self::$superGlobalArrays, self::$superGlobalArraysLong);
     } else {
         $superGlobalArrays = self::$superGlobalArrays;
     }
     foreach ($superGlobalArrays as $superGlobalArray) {
         if (!in_array($superGlobalArray, $blacklist)) {
             self::restoreSuperGlobalArray($superGlobalArray);
         }
     }
     foreach (array_keys($GLOBALS) as $key) {
         if ($key != 'GLOBALS' && !in_array($key, $superGlobalArrays) && !in_array($key, $blacklist)) {
             if (isset(self::$globals['GLOBALS'][$key])) {
                 $GLOBALS[$key] = unserialize(self::$globals['GLOBALS'][$key]);
             } else {
                 unset($GLOBALS[$key]);
             }
         }
     }
     self::$globals = array();
 }