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); } }
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); } }