Ejemplo n.º 1
0
 public static final function flushToClient()
 {
     $ETag = md5(implode(';', self::$files));
     $gzip = GZIP_OUT ? '.gz' : '';
     $cachedFile = CACHE_PATH . 'js#' . $ETag;
     header('Expires: ' . gmdate('D, d M Y H:i:s \\G\\M\\T', time() + (DEVELOPER_MODE ? 0 : 60 * 60 * 24)));
     header('Cache-Control: public');
     header('Content-Type: application/javascript; charset: utf-8');
     if (!DEVELOPER_MODE && is_file($cachedFile . $gzip) && filemtime($cachedFile . $gzip) > self::$mtime) {
         if ($gzip) {
             header('Content-Encoding: gzip');
         }
         header('Content-Length:' . filesize($cachedFile . $gzip));
         if ($status = HttpUtils::entityCache($ETag, self::$mtime)) {
             HttpHeaders::flush($status);
         } else {
             readfile($cachedFile . $gzip);
         }
         exit;
     }
     $buffer = '';
     foreach (self::$files as $file) {
         $buffer .= file_get_contents($file);
     }
     $buffer = preg_replace('#^(\\s+)#m', '', $buffer);
     $buffer = preg_replace('#[\\r\\n]+#', '', $buffer);
     $buffer = str_replace(';}', '}', $buffer);
     if (GZIPSUPPORT && ($gz = gzopen($cachedFile . '.gz', 'w9'))) {
         gzwrite($gz, $buffer);
         gzclose($gz);
     }
     file_put_contents($cachedFile, $buffer);
     if (is_file($cachedFile . $gzip) || !$gzip) {
         if ($gzip) {
             header('Content-Encoding: gzip');
         }
         header('Content-Length:' . filesize($cachedFile . $gzip));
         exit(readfile($cachedFile . $gzip));
     } else {
         ob_start('ob_gzhandler');
         exit($buffer);
     }
 }
Ejemplo n.º 2
0
 public static final function flushToClient()
 {
     $ETag = md5(implode(';', self::$files));
     $gzip = GZIP_OUT ? '.gz' : '';
     $cachedFile = CACHE_PATH . 'css#' . $ETag;
     header('Expires: ' . gmdate('D, d M Y H:i:s \\G\\M\\T', time() + (DEVELOPER_MODE ? 0 : 60 * 60 * 24)));
     header('Cache-Control: public');
     header('Content-Type: text/css; charset: utf-8');
     if (!DEVELOPER_MODE && is_file($cachedFile . $gzip) && filemtime($cachedFile . $gzip) > self::$mtime) {
         if ($gzip) {
             header('Content-Encoding: gzip');
         }
         header('Content-Length:' . filesize($cachedFile . $gzip));
         if ($status = HttpUtils::entityCache($ETag, self::$mtime)) {
             HttpHeaders::flush($status);
         } else {
             readfile($cachedFile . $gzip);
         }
         exit;
     }
     $buffer = '';
     foreach (self::$files as $file) {
         $buffer .= file_get_contents($file);
     }
     $buffer = preg_replace('#((url\\(|src=)["\']?)(../)?images/#', '$1' . BASEHREF . 'themes/' . self::$theme . '/images/', $buffer);
     $buffer = trim(preg_replace('#\\s+#', ' ', $buffer));
     $buffer = preg_replace('#/\\*.*?\\*/#s', '', $buffer);
     $buffer = preg_replace('#\\s*[^{}]+{\\s*}\\s*#', '', $buffer);
     $buffer = preg_replace('#\\s*([{},;:])\\s*#', '$1', $buffer);
     $buffer = str_replace(';}', '}', $buffer);
     if (GZIPSUPPORT && ($gz = gzopen($cachedFile . '.gz', 'w9'))) {
         gzwrite($gz, $buffer);
         gzclose($gz);
     }
     file_put_contents($cachedFile, $buffer);
     if (is_file($cachedFile . $gzip) || !$gzip) {
         if ($gzip) {
             header('Content-Encoding: gzip');
         }
         header('Content-Length:' . filesize($cachedFile . $gzip));
         exit(readfile($cachedFile . $gzip));
     } else {
         ob_start('ob_gzhandler');
         exit($buffer);
     }
 }