pixmicat

Subversion Repositories:
Compare Path: Rev
With Path: Rev
/PMC2Prototype/ @ 364  →  /PMC2Prototype/ @ 365
/PMC2Prototype/pixmicat.php
@@ -20,7 +20,8 @@
require('./lib/lib_core.php'); // Class PMCCore
set_error_handler('PMCCore_errorHandler', E_ERROR | E_WARNING | E_USER_ERROR); // Handle Errors
 
// Buffer Start
// Start the buffer if supported
if($Encoding = PMCCore_checkGZipSupport()){ ob_start(); ob_implicit_flush(0); }
 
$splitURL = PMCCore_splitURL(); // Config/Action/Parameter
if(PMCCore_loadConfig($splitURL)){ // Loaded successfully
@@ -31,5 +32,17 @@
exit('This is Pixmicat!2 Image Board, a rewrite frame of Pixmicat!.');
}
 
// Gzipm Start
// Gzip output
if($Encoding){
$CompressLv = PMCCore_getConfig('GZIP_COMPRESS_LEVEL');
if(!$CompressLv) echo ob_get_clean();
else{
if(!ob_get_length()) exit; // No content
$txt = gzencode(ob_get_clean(), $CompressLv);
header('Content-Length: '.strlen($txt));
header('Content-Encoding: '.$Encoding);
header('Vary: Accept-Encoding');
echo $txt;
}
}
?>
/PMC2Prototype/config/config.comic.php
@@ -98,7 +98,6 @@
$config['COMM_MAX'] = 2000; // 內文接受Bytes數 (注意:中文字為2Bytes)
$config['BR_CHECK'] = 0; // 文字換行行數上限 (不限:0)
$config['STATIC_HTML_UNTIL'] = -1; // 更新文章時自動生成的靜態網頁至第幾頁止 (全部生成:-1 僅入口頁:0)
$config['GZIP_COMPRESS_LEVEL'] = 3; // PHP動態輸出頁面使用Gzip壓縮層級 (關閉:0 啟動:1~9,推薦值:3)
$config['DEFAULT.NOTITLE'] = '無標題'; // 預設文章標題
$config['DEFAULT.NONAME'] = '無名氏'; // 預設文章名稱
$config['DEFAULT.NOCOMMENT'] = '無內文'; // 預設文章內文
/PMC2Prototype/config/global.php
@@ -12,4 +12,5 @@
$config['ENV.PHP_SELF'] = $_SERVER['SCRIPT_NAME'].'/'.$splitURL[0]; // 程式所在位置 (此欄不需修改)
$config['TIME_ZONE'] = 8; // 時區設定 (GMT時區,參照 http://wwp.greenwichmeantime.com/)
$config['HTTP_UPLOAD_DIFF'] = 50; // HTTP上傳所有位元組與實際位元組之允許誤差值
$config['GZIP_COMPRESS_LEVEL'] = 3; // PHP動態輸出頁面使用Gzip壓縮層級 (關閉:0 啟動:1~9,推薦值:3)
?>
/PMC2Prototype/lib/lib_core.php
@@ -40,6 +40,19 @@
}
 
/**
* 檢查伺服器/瀏覽器是否皆支援 Gzip 壓縮
* @return mixed "gzip" 代表可使用,false 代表不可用
*/
function PMCCore_checkGZipSupport(){
if(headers_sent() || connection_aborted()) return false;
if(!(function_exists('gzencode') && function_exists('ob_start') && function_exists('ob_get_clean'))) return false;
 
$HTTP_ACCEPT_ENCODING = isset($_SERVER['HTTP_ACCEPT_ENCODING']) ? $_SERVER['HTTP_ACCEPT_ENCODING'] : '';
if(strpos($HTTP_ACCEPT_ENCODING, 'gzip')!==false) return 'gzip';
return false;
}
 
/**
* 切割 URL PATH_INFO 並從中得取指定之設定檔名稱、動作控制器及傳入參數
* @return array 切割後的 URL PATH_INFO 陣列
*/