?php$endrun=false;define("CONTROLLERS_DIR",dirname(__FILE__).'/controllers/');define("VIEWS_DIR",dirname(__FILE__).'/views/');define("MODELS_DIR",dirname(__FILE__).'/models/');define("CONFIG_DIR",dirname(__FILE__).'/config/');define("CLASSS
<?php $endrun=false; define("CONTROLLERS_DIR",dirname(__FILE__).'/controllers/'); define("VIEWS_DIR",dirname(__FILE__).'/views/'); define("MODELS_DIR",dirname(__FILE__).'/models/'); define("CONFIG_DIR",dirname(__FILE__).'/config/'); define("CLASSS_DIR",dirname(__FILE__).'/classs/'); define("CONFIG_FILE",'config.php'); if(file_exists(CONFIG_DIR.CONFIG_FILE)) { require(CONFIG_DIR.CONFIG_FILE); } function inti() { set_error_handler('error_handler'); register_shutdown_function('shutdown_func'); if(version_compare(PHP_VERSION,'5.4.0','<')) { ini_set('magic_quotes_runtime',0); } else { define('MAGIC_QUOTES_GPC',false); } if(get_config('charset')!='error') { ini_set('default_charset',get_config('charset')); } if(get_config('appname')!='error') { header('X-Powered-By:'.get_config('appname')); } if(get_config('timezone')!='error') { ini_set('date.timezone',get_config('timezone')); } if(get_config('debug')!='error') { if(get_config('debug')==false) { ini_set("display_errors", "off"); } if(get_config('debug')==true) { ini_set("display_errors", "on"); } } } function get_query() { $request_url=$_SERVER['REQUEST_URI']; $a=explode('/',$request_url); $length=count($a); if($length<4) { return false; } else { $s=$a[3]; if(strpos($s,'.html')===false) { return $s; } else { return str_replace('.html','',$s); } } } function get_config($key) { if(isset($GLOBALS['config'])) { if(is_array($GLOBALS['config'])) { if(array_key_exists($key,$GLOBALS['config'])) { return $GLOBALS['config'][$key]; } } } return 'error'; } function is_method($method) { $m=$_SERVER['REQUEST_METHOD']; if(strtoupper($method)==$m) { return true; } return false; } //页面跳转 function redirect($url) { header('Location:'.$url); exit(); } //载入model function model($name) { $name.='_model'; if(file_exists(MODELS_DIR.$name.'.php')) { require_once(MODELS_DIR.$name.'.php'); if(class_exists($name)) { $c=new $name; return $c; } } return false; } //载入class function load_class($name) { if(file_exists(CLASSS_DIR.$name.'.php')) { include(CLASSS_DIR.$name.'.php'); } } function error_handler($errno,$errstr,$errfile,$errline) { if (!(error_reporting() & $errno)) { return; } echo 'something is wrong!'; } function shutdown_func() { if(!$GLOBALS['endrun']) { echo("500 something is wrong!"); } } function map() { $request_url=$_SERVER['REQUEST_URI']; if($request_url=='/') { instance('index','index'); } else { $a=explode('/',$request_url); $length=count($a); $c=$a[1]; if($length>=3) { $m=$a[2]; if($m=="") { instance($c,$c); } else { instance($c,$m); } } else { instance($c,$c); } } $GLOBALS['endrun']=true; } function instance($c,$m) { $c.='_controller'; $m.='_action'; if(file_exists(CONTROLLERS_DIR.$c.'.php')) { require_once(CONTROLLERS_DIR.$c.'.php'); if(class_exists($c)) { if(method_exists($c,$m)) { $r=new $c; if($c!=$m) { $r->$m(); } } else { echo '404 not found'; } } else { echo '404 not found'; } } else { echo '404 not found'; } } function json($arr) { header('content-type:application/json; charset=utf-8'); if(is_array($arr)) { echo json_encode($arr); return; } echo json_decode(array('error'=>'parameter error')); } function text($str) { header('content-type:text/plain; charset=utf-8'); echo $str; } function render($view,$data = null) { $path=VIEWS_DIR.$view.'.php'; if(file_exists($path)) { header('content-type:text/html; charset=utf-8'); ob_start(); if(is_array($data)) { extract($data); } require $path; echo trim(ob_get_clean()); } else { echo 'template not found'; } } function run() { inti(); map(); } run(); ?>