public function parse_uri($request_main) { if (get_setting('url_rewrite_enable') == 'Y' and $request_routes = get_request_route(false)) { if (!$request_main) { $request_main = '/'; } foreach ($request_routes as $key => $val) { if (preg_match('/^' . $val[0] . '/', $request_main)) { $request_main = preg_replace('/^' . $val[0] . '/', $val[1], $request_main); return $request_main; } } } return $request_main; }
/** * 伪静态地址转换器 * * @param string * @return string */ function get_js_url($url) { if (substr($url, 0, 1) == '/') { $url = substr($url, 1); if (get_setting('url_rewrite_enable') == 'Y' and $request_routes = get_request_route()) { if (strstr($url, '?')) { $request_uri = explode('?', $url); $query_string = $request_uri[1]; $url = $request_uri[0]; } else { unset($query_string); } foreach ($request_routes as $key => $val) { if (preg_match('/^' . $val[0] . '$/', $url)) { $url = preg_replace('/^' . $val[0] . '$/', $val[1], $url); break; } } if ($query_string) { $url .= '?' . $query_string; } } $url = base_url() . '/' . (get_setting('url_rewrite_enable') != 'Y' ? G_INDEX_SCRIPT : '') . $url; } return $url; }
public static function output($template_filename, $display = true) { if (!strstr($template_filename, self::$template_ext)) { $template_filename .= self::$template_ext; } $display_template_filename = 'default/' . $template_filename; if (self::$in_app) { if (get_setting('ui_style') != 'default') { $custom_template_filename = get_setting('ui_style') . '/' . $template_filename; if (file_exists(self::$template_path . '/' . $custom_template_filename)) { $display_template_filename = $custom_template_filename; } } self::assign('template_name', get_setting('ui_style')); if (!self::$view->_meta_keywords) { self::set_meta('keywords', get_setting('keywords')); } if (!self::$view->_meta_description) { self::set_meta('description', get_setting('description')); } } else { self::assign('template_name', 'default'); } if (self::$in_app and $display) { if ($plugins = AWS_APP::plugins()->parse($_GET['app'], $_GET['c'], $_GET['act'], str_replace(self::$template_ext, '', $template_filename))) { foreach ($plugins as $plugin_file) { include_once $plugin_file; } } } $output = self::$view->getOutput($display_template_filename); if (self::$in_app and basename($template_filename) != 'debuger.tpl.htm') { $template_dirs = explode('/', $template_filename); /* /if ($template_dirs[0] != 'admin') { $output = H::sensitive_words($output); } */ if (get_setting('url_rewrite_enable') != 'Y' or $template_dirs[0] == 'admin') { //$output = preg_replace('/(href|action)=([\"|\'])(?!http)(?!mailto)(?!file)(?!ftp)(?!javascript)(?![\/|\#])(?!\.\/)([^\"\']+)([\"|\'])/is', '\1=\2' . base_url() . '/' . G_INDEX_SCRIPT . '\3\4', $output); $output = preg_replace('/<([^>]*?)(href|action)=([\\"|\'])(?!http)(?!mailto)(?!file)(?!ftp)(?!javascript)(?![\\/|\\#])(?!\\.\\/)([^\\"\']+)([\\"|\'])([^>]*?)>/is', '<\\1\\2=\\3' . base_url() . '/' . G_INDEX_SCRIPT . '\\4\\5\\6>', $output); } if ($request_routes = get_request_route() and $template_dirs[0] != 'admin' and get_setting('url_rewrite_enable') == 'Y') { foreach ($request_routes as $key => $val) { $output = preg_replace("/href=[\"|']" . $val[0] . "[\\#]/", "href=\"" . $val[1] . "#", $output); $output = preg_replace("/href=[\"|']" . $val[0] . "[\"|']/", "href=\"" . $val[1] . "\"", $output); } } if (get_setting('url_rewrite_enable') == 'Y' and $template_dirs[0] != 'admin') { //$output = preg_replace('/(href|action)=([\"|\'])(?!mailto)(?!file)(?!ftp)(?!http)(?!javascript)(?![\/|\#])(?!\.\/)([^\"\']+)([\"|\'])/is', '\1=\2' . base_url() . '/' . '\3\4', $output); $output = preg_replace('/<([^>]*?)(href|action)=([\\"|\'])(?!mailto)(?!file)(?!ftp)(?!http)(?!javascript)(?![\\/|\\#])(?!\\.\\/)([^\\"\']{0,})([\\"|\'])([^>]*?)>/is', '<\\1\\2=\\3' . base_url() . '/' . '\\4\\5\\6>', $output); } //$output = preg_replace("/([a-zA-Z0-9]+_?[a-zA-Z0-9]+)-__|(__[a-zA-Z0-9]+_?[a-zA-Z0-9]+)-$/i", '', $output); $output = preg_replace('/[a-zA-Z0-9]+_?[a-zA-Z0-9]*\\-__/', '', $output); $output = preg_replace('/(__)?[a-zA-Z0-9]+_?[a-zA-Z0-9]*\\-([\'|"])/', '\\2', $output); if (AWS_APP::config()->get('system')->debug) { $output .= "\r\n<!-- Template End: " . $display_template_filename . " -->\r\n"; } } if ($display) { echo $output; flush(); } else { return $output; } }