= 60 || $current == 0); } // check_php_timelimit /** * check_safe_mode * Checks to make sure we aren't in safe mode */ function check_safemode() { if (ini_get('safe_mode')) { return false; } return true; } /** * check_override_memory * This checks to see if we can manually override the memory limit */ function check_override_memory() { /* Check memory */ $current_memory = ini_get('memory_limit'); $current_memory = substr($current_memory,0,strlen($current_memory)-1); $new_limit = ($current_memory+16) . "M"; /* Bump it by 16 megs (for getid3)*/ if (!ini_set('memory_limit',$new_limit)) { return false; } // Make sure it actually worked $new_memory = ini_get('memory_limit'); if ($new_limit != $new_memory) { return false; } return true; } /** * check_override_exec_time * This checks to see if we can manually override the max execution time */ function check_override_exec_time() { $current = ini_get('max_execution_time'); set_time_limit($current+60); if ($current == ini_get('max_execution_time')) { return false; } return true; } /** * check_gettext * This checks to see if you've got gettext installed */ function check_gettext() { if (!function_exists('gettext')) { return false; } return true; } // check_gettext /** * check_mbstring * This checks for mbstring support */ function check_mbstring() { if (!function_exists('mb_check_encoding')) { return false; } return true; } // check_mbstring /** * check_config_writable * This checks whether we can write the config file */ function check_config_writable() { // file eixsts && is writable, or dir is writable return ((file_exists(Config::get('prefix') . '/config/ampache.cfg.php') && is_writable(Config::get('prefix') . '/config/ampache.cfg.php')) || (!file_exists(Config::get('prefix') . '/config/ampache.cfg.php') && is_writeable(Config::get('prefix') . '/config/'))); } /** * generate_config * This takes an array of results and re-generates the config file * this is used by the installer and by the admin/system page */ function generate_config($current) { /* Start building the new config file */ $distfile = Config::get('prefix') . '/config/ampache.cfg.php.dist'; $handle = fopen($distfile,'r'); $dist = fread($handle,filesize($distfile)); fclose($handle); $data = explode("\n",$dist); /* Run throught the lines and set our settings */ foreach ($data as $line) { /* Attempt to pull out Key */ if (preg_match("/^;?([\w\d]+)\s+=\s+[\"]{1}(.*?)[\"]{1}$/",$line,$matches) || preg_match("/^;?([\w\d]+)\s+=\s+[\']{1}(.*?)[\']{1}$/", $line, $matches) || preg_match("/^;?([\w\d]+)\s+=\s+[\'\"]{0}(.*)[\'\"]{0}$/",$line,$matches)) { $key = $matches[1]; $value = $matches[2]; /* Put in the current value */ if ($key == 'config_version') { $line = $key . ' = ' . escape_ini($value); } elseif (isset($current[$key])) { $line = $key . ' = "' . escape_ini($current[$key]) . '"'; unset($current[$key]); } // if set } // if key $final .= $line . "\n"; } // end foreach line return $final; } // generate_config /** * escape_ini * Escape a value used for inserting into an ini file. * Won't quote ', like addslashes does. */ function escape_ini($str) { return str_replace('"', '\"', $str); } /** * debug_ok * Return an "OK" with the specified string */ function debug_result($comment,$status=false,$value=false) { $class = $status ? 'ok' : 'notok'; if (!$value) { $value = $status ? 'OK' : 'ERROR'; } $final = '' . scrub_out($value) . ' ' . $comment . ''; return $final; } // debug_ok ?>