storeCoreModels(); //Limpiamos la carpeta actual si se incluye en la URL $request_uri = substr( $request, strpos($request, $folder) + strlen($folder), strlen($request) ); // Limpieza de Query String con el filtro de PHP // Además, eliminamos la primera / // Y de paso, quitamos la última / si existe... // así /public/index = /public/index/ $request_uri = trim(filter_var($request_uri, FILTER_SANITIZE_URL), '/'); // Obtenemos los trozos del querystring // 1. Eliminamos la parte de $_GET si existe, partiendo por ? /*if(strpos($request, '?') !== FALSE) $request = substr($request, 0, strpos($request,'?'));*/ // 2. Nos montamos un array con los trozos $request = explode('/', $request_uri); // Obtención de idioma $idiomas = array( 'Alemán'=>'de', 'Español'=>'es', 'Francés'=>'fr', 'Griego'=>'gr', 'Ingles'=>'en', 'Italiano'=>'it', 'Portugués'=>'pt', 'Ruso'=>'ru' ); if( isset($request[0]) ) { if( in_array(strtolower($request[0]), $idiomas) ) { // www.dominio.com/es $idioma = array_shift($request); define('LANGUAGE', $idioma); } } //Buscamos si el primer parametro es una pagina if( isset($request[0]) && !empty($request[0]) ) { if( file_exists("www/".$request[0].".php") ) { $url = "www/".array_shift($request).".php"; } elseif( $request[0] == "admin" ) { $url = "adminsite_clientbrowser/index.php"; } elseif( $request[0] == "adminsite_api" ) { $url = "adminsite_api/index.php"; } elseif( $request[0] == "img" ) { //Instanciar controlador array_shift($request); $img = new Pics($request); exit(); } elseif( !isset($request[1]) or empty($request[1]) ) { $url = "www/index.php"; } } else { $url = "www/index.php"; } //Comprobar si existe controlador if( isset($request[0]) ) { if( file_exists( "controller/" . ucfirst(strtolower($request[0])) . ".php" ) ) { $controller = ucfirst(strtolower(array_shift($request))); $action = strtolower(array_shift($request)).'Action'; } } // Resto de parámetros, los recogemos como /clave1/valor1/clave2/valor2 $params = array(); for( $i=0; $i$action(); } } if( !empty($url) ) { include $url; } else { include "www/error/404.php"; } } catch (Exception $ex) { // Aquí depende mucho de lo que queramos hacer... echo $ex->getMessage(); // O incluso mejor, si venimos de una clase de las profundidades, veremos // la secuencia de clases, aquí no veremos nada ya que todo pasa en el index.php debug_print_backtrace(); } ?>