function P_unserialize($str, $array = array(), $i = 1) { $str = explode("\n{$i}\n", $str); foreach ($str as $key => $value) { $k = substr($value, 0, strpos($value, "\t")); $v = substr($value, strpos($value, "\t") + 1); if (strpos($v, "\n") !== false) { $next = $i + 1; $array[$k] = P_unserialize($v, $array[$k], $next); } elseif (strpos($v, "\t") !== false) { $array[$k] = P_array($array[$k], $v); } else { $array[$k] = $v; } } return $array; }
function updatecache_df() { global $db; $query = $db->query("SELECT * FROM pw_config WHERE db_name LIKE 'df_%'"); $configdb = "<?php\r\n"; $_cachedb = $_newdb = $_cmsdb = $_fiddb = $_forumlogodb = array(); while (@extract($db->fetch_array($query))) { $db_name = key_cv($db_name); if ($db_name == 'df_cache') { $db_value = P_unserialize($db_value); if (is_array($db_value)) { foreach ($db_value as $key => $value) { $_cachedb[$key] = array(trim($value[0]), trim($value[1])); } } } elseif ($db_name == 'df_NEW') { $db_value = P_unserialize($db_value); if (is_array($db_value)) { foreach ($db_value as $value) { $_newdb[] = $value; } } } elseif ($db_name == 'df_CMS') { $db_value = P_unserialize($db_value); if (is_array($db_value)) { foreach ($db_value as $value) { $_cmsdb[] = $value; } } } elseif ($db_name == 'df_FID') { $db_value = P_unserialize($db_value); if (is_array($db_value)) { foreach ($db_value as $value) { $_fiddb[] = $value; } } } elseif ($db_name == 'df_forumlogo') { $db_value = P_unserialize($db_value); if (is_array($db_value)) { foreach ($db_value as $key => $value) { if ($value[0]) { $_forumlogodb[$key] = array($value[0], $value[1], $value[2], $value[3]); } } } } else { $configdb .= "\${$db_name}=" . pw_var_export($db_value) . ";\r\n"; } } $configdb .= "\r\n\$df_cache=" . pw_var_export($_cachedb) . ";\r\n"; $configdb .= "\r\n\$df_NEW=" . pw_var_export($_newdb) . ";\r\n"; $configdb .= "\r\n\$df_CMS=" . pw_var_export($_cmsdb) . ";\r\n"; $configdb .= "\r\n\$df_FID=" . pw_var_export($_fiddb) . ";\r\n"; $configdb .= "\r\n\$df_forumlogo=" . pw_var_export($_forumlogodb) . ";\r\n"; $configdb .= "?>"; writeover(D_P . 'data/bbscache/c_config.php', $configdb); }