public static function read($module = '', $action = '')
 {
     self::$module = $module;
     self::$action = $action;
     //如果不符合静态规则,则直接返回false
     if (false == self::_checkRule()) {
         return false;
     }
     self::$cacheAble = true;
     //标志静态缓存可正常使用
     if (isset($_SERVER['PATH_INFO'])) {
         $url = $_SERVER['PATH_INFO'];
     } else {
         $script_name = $_SERVER["SCRIPT_NAME"];
         //获取当前文件的路径
         $url = $_SERVER["REQUEST_URI"];
         //获取完整的路径,包含"?"之后的字符串
         //去除url包含的当前文件的路径信息
         if ($url && @strpos($url, $script_name, 0) !== false) {
             $url = substr($url, strlen($script_name));
         } else {
             $script_name = str_replace(basename($_SERVER["SCRIPT_NAME"]), '', $_SERVER["SCRIPT_NAME"]);
             if ($url && @strpos($url, $script_name, 0) !== false) {
                 $url = substr($url, strlen($script_name));
             }
         }
     }
     //第一个字符是'/',则去掉
     if ($url[0] == '/') {
         $url = substr($url, 1);
     }
     //设定缓存文件名
     if (empty($_SERVER['QUERY_STRING']) && preg_match("#^[a-z0-9_\\-\\/]+\\.html\$#i", $url)) {
         self::$cacheFile = $url;
     } else {
         self::$cacheFile = self::$module . '/' . self::$action . '/' . md5($_SERVER['REQUEST_URI']) . cpConfig::$config['APP']['HTML_CACHE_SUFFIX'];
     }
     self::$cacheFile = cpConfig::$config['APP']['HTML_CACHE_PATH'] . self::$cacheFile;
     $dir = dirname(self::$cacheFile);
     echo $dir;
     if (!is_dir($dir)) {
         @mkdir($dir, 0777, true);
     }
     if (isset(cpConfig::$config['APP']['HTML_CACHE_RULE'][self::$module][self::$action])) {
         $expires = cpConfig::$config['APP']['HTML_CACHE_RULE'][self::$module][self::$action];
     } else {
         $expires = cpConfig::$config['APP']['HTML_CACHE_RULE'][self::$module]['*'];
     }
     //静态缓存文件存在,且没有过期,则直接读取
     if (file_exists(self::$cacheFile) && time() < filemtime(self::$cacheFile) + $expires) {
         readfile(self::$cacheFile);
         return true;
     }
     ob_start();
     //开启内容输出控制
     return false;
 }
 public function model_jump($mid, $module)
 {
     $model_info = $this->model_info($mid);
     if (!empty($model_info['module_category']) && $model_info['module_category'] != $module) {
         module($model_info['module_category'])->index();
         if ($this->config['HTML_CACHE_ON']) {
             cpHtmlCache::write();
         }
         exit;
     }
 }
Exemple #3
0
 private function _writeHtmlCache()
 {
     if ($this->appConfig['HTML_CACHE_ON']) {
         cpHtmlCache::write();
     }
 }
Exemple #4
0
 public function clear_html($url)
 {
     $config = cpConfig::get('APP');
     cpHtmlCache::refresh($config['HTML_CACHE_PATH'], $url);
 }