I changed the loader function of ci. Can anyone help me?
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-07-25 08:47:56
Original
996 people have browsed it
- protected function _ci_load($_ci_data) {
- // Set the default data variables
- foreach (array('_ci_view', '_ci_vars', '_ci_path', '_ci_return') as $_ci_val) {
- $$_ci_val = (!isset($_ci_data[$_ci_val])) ? FALSE : $_ci_data[$_ci_val];
- }
-
-
- $file_exists = FALSE;
- $_ci_ext = '.html';
- // Set the path to the requested file
- if ($_ci_path != '') {
- $_ci_x = explode('/', $_ci_path);
- $_ci_file = end($_ci_x) . $_ci_ext;
- } else {
- //Can be commented out The following line, because we can already automatically load the view through routing
- //$_ci_ext = pathinfo($_ci_view, PATHINFO_EXTENSION); //Get the suffix name of the view file, the default is not to pass the suffix name
- //Splice the view path
- //Load the configuration to easily obtain the value of mca(m: module, c: controller, a: action)
- $this->config = &load_class('Config', 'core');
- $directory_trigger = $ this->config->item('directory_trigger');
- $controller_trigger = $this->config->item('controller_trigger');
- $function_trigger = $this->config->item( 'function_trigger');
-
- //If the user does not configure pseudo-static, use pathinfo
- $urlinfo = explode('/', $_SERVER['REQUEST_URI']);
- $urlinfo['module'] = @$ urlinfo[1] ? $urlinfo[1] : 'home';
- $urlinfo['controller'] = @$urlinfo[2] ? $urlinfo[2] : 'index';
- $urlinfo['action'] = @$urlinfo[3] ? $urlinfo[3] : 'index';
-
-
- $m = isset($_GET[$directory_trigger]) && $_GET[$directory_trigger]!='' ? $_GET[$directory_trigger] : $urlinfo['module'];
- $c =isset($_GET[$controller_trigger]) && $_GET[$controller_trigger]!='' ? $_GET[$controller_trigger] : $urlinfo['controller'];
- $a = isset($_GET[$function_trigger]) && $_GET[$function_trigger] !=''? $_GET[$function_trigger] : $urlinfo['action'];
- //Special processing common/header (including public Head/Bottom)
- $slasharr = explode('/', $_ci_view);
- if (count($slasharr) > 1) {
- $_ci_file = $m . '/' . $slasharr['0 '].'/' .$slasharr['1'] . $_ci_ext;
- } else {
-
- //Default view name (excluding suffix name)
- $view_name = $_ci_view == '' ? $a : $_ci_view; //If no view name is passed, the action name is used by default
- $_ci_file = $m . '/' . $c . '/' . $view_name . $_ci_ext;
- }
- foreach ($this-> ;_ci_view_paths as $view_file => $cascade) {
- if (file_exists($view_file . $_ci_file)) {
- $_ci_path = $view_file . $_ci_file;
- $file_exists = TRUE;
- break;
- }
-
- if ( !$cascade) {
- break;
- }
- }
- }
-
- if (!$file_exists && !file_exists($_ci_path)) {
- show_error('Unable to load the requested file: ' . $_ci_file);
- }
-
- // This allows anything loaded using $this->load (views, files, etc.)
- // to become accessible from within the Controller and Model functions.
-
- $_ci_CI = & get_instance();
- foreach (get_object_vars ($_ci_CI) as $_ci_key => $_ci_var) {
- if (!isset($this->$_ci_key)) {
- $this->$_ci_key = & $_ci_CI->$_ci_key;
- }
- }
-
- /*
- * Extract and cache variables
- *
- * You can either set variables using the dedicated $this->load_vars()
- * function or via the second parameter of this function. We'll merge
- * the two types and cache them so that views that are embedded within
- * other views can have access to these variables.
- */
- if (is_array($_ci_vars)) {
- $this->_ci_cached_vars = array_merge($this- >_ci_cached_vars, $_ci_vars);
- }
- extract($this->_ci_cached_vars);
-
- /*
- * Buffer the output
- *
- * We buffer the output for two reasons:
- * 1. Speed. You get a significant speed boost.
- * 2. So that the final rendered template can be
- * post-processed by the output class. Why do we
- * need post processing? For one thing, in order to
- * show the elapsed page load time. Unless we
- * can intercept the content right before it's sent to
- * the browser and then stop the timer it won't be accurate.
- */
- ob_start();
-
- // If the PHP installation does not support short tags we'll
- // do a little string replacement, changing the short tags
- // to standard PHP echo statements.
-
- if ((bool) @ini_get('short_open_tag') === FALSE AND config_item('rewrite_short_tags') == TRUE) {
- echo eval('?>' . preg_replace("/;*s*?>/", "; ?>", str_replace('=', ' } else {
- include($_ci_path); // include() vs include_once() allows for multiple views with the same name
- }
- log_message('debug', 'File loaded: ' . $_ci_path);
- // Return the file data if requested
- if ($_ci_return === TRUE) {
- $buffer = ob_get_contents();
- @ob_end_clean();
- return $buffer;
- }
- /*
- * Flush the buffer... or buff the flusher?
- *
- * In order to permit views to be nested within
- * other views, we need to flush the content back out whenever
- * we are beyond the first level of output buffering so that
- * it can be seen and included properly by the first included
- * template and any subsequent ones. Oy!
- *
- */
- if (ob_get_level() > $this->_ci_ob_level + 1) {
- ob_end_flush();
- } else {
- $_ci_CI->output->append_output(ob_get_contents());
- @ob_end_clean();
- }
- }
复制代码
|
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
-
2025-02-26 03:58:14
-
2025-02-26 03:38:10
-
2025-02-26 03:17:10
-
2025-02-26 02:49:09
-
2025-02-26 01:08:13
-
2025-02-26 00:46:10
-
2025-02-25 23:42:08
-
2025-02-25 22:50:13
-
2025-02-25 21:54:11
-
2025-02-25 20:45:11
Latest Issues
-
2025-03-21 13:39:34
-
2025-03-21 13:38:34
-
2025-03-21 13:37:19
-
2025-03-21 13:35:24
-
2025-03-21 13:34:32