Пример #1
0
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;
}
Пример #2
0
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);
}