<?php error_reporting(0); ob_start(); // START ERROR HANDLING function shutdown_handler(){ $error = error_get_last(); if ($error['type'] == 1) { ob_end_clean(); switch($error['type']){ case E_USER_ERROR:$errnostr='Fatal Error';break; case E_USER_WARNING:$errnostr='Warning';break; case E_USER_NOTICE:$errnostr='Notice';break; case E_ERROR:$errnostr='Error';break; case E_PARSE:$errnostr='Parse Error';break; case E_CORE_ERROR:$errnostr='Core Error';break; case E_CORE_WARNING:$errnostr='Core Warning';break; case E_COMPILE_ERROR:$errnostr='Compile Error';break; case E_COMPILE_WARNING:$errnostr='Compile Warning';break; //case E_:$errnostr='';break; default:$errnostr='Unkown Error'; } echo json_encode(Array( 'error'=>"\n{$errnostr}: {$error['message']} on {$error['file']}[{$error['line']}]" )); }else{ obj_end_flush(); } echo $error['type'].PHP_EOL; } register_shutdown_function('shutdown_handler'); // END ERROR HANDLING @session_start(); define('PATH_ROOT',realpath(dirname(__FILE__)).'/../'); define('PATH_CONFIG',PATH_ROOT.'config.json'); define('PATH_DEFAULT_CONFIG',PATH_ROOT.'config.default.json'); define('PATH_PHP',PATH_ROOT.'php/'); define('PATH_JS',PATH_ROOT.'js/'); define('PATH_CSS',PATH_ROOT.'css/'); define('PATH_DATA',PATH_ROOT.'data/'); global $config; if(file_exists(PATH_CONFIG)){ $config = objectToArray(json_decode(file_get_contents(PATH_CONFIG),true)); }else{ $config = Array(); } $config = array_merge($config,objectToArray(json_decode(file_get_contents(PATH_DEFAULT_CONFIG),true))); function get($setting){ global $config; if(isset($config[$setting])){ return $config[$setting]; }else{ return false; } } function set($setting,$value){ global $config; $config[$setting] = $value; file_put_contents(PAT_CONFIG,json_encode($config)); return $value; } function objectToArray($d){ if(is_object($d)){ // Gets the properties of the given object // with get_object_vars function $d = get_object_vars($d); } if(is_array($d)){ /* * Return array converted to object * Using __FUNCTION__ (Magic constant) * for recursive call */ return array_map(__FUNCTION__, $d); }else{ // Return array return $d; } } function arrayToObject($d){ if(is_array($d)){ /* * Return array converted to object * Using __FUNCTION__ (Magic constant) * for recursive call */ return (object)array_map(__FUNCTION__, $d); }else{ // Return object return $d; } } ?>