Initial commit.

This commit is contained in:
2026-03-10 21:25:26 +08:00
commit 78739bf725
3089 changed files with 472990 additions and 0 deletions

View File

@@ -0,0 +1,99 @@
<?php
// File name: big5.inc.php
// Description: PHP subroutine to deal with Big5 characters
// Date: 2004-04-17
// Author: imacat <imacat@pristine.com.tw>
// Copyright: Copyright (C) 2004-2007 Pristine Communications
// 編碼規則:
// 高位元組: A1-FE, 8E-A0, 81-8D
// 低位元組: 40-7E, A1-FE
// 常用字: A440-C67E
// 次常用字: C940-F9D5
// 常用符號: A140-A3BF
// 罕用符號: C6A1-C8FE
// 控制碼: A3C0-A3E0
// Set the include path
if (!defined("INCPATH_SET")) {
require_once dirname(__FILE__) . "/incpath.inc.php";
}
// Referenced subroutines
require_once "monica/xfileio.inc.php";
// Settings
define("_BIG5_VAR", "/tmp/big5.var");
$_BIG5 = null;
// init_big5: Initialize the Big5 characters array
function init_big5()
{
global $_BIG5;
// Already initialized
if (!is_null($_BIG5)) {
return;
}
// Initialize from the existing table
if (file_exists(_BIG5_VAR)) {
eval(xfread(_BIG5_VAR));
return;
}
// Initialize the characters
$_BIG5 = array(
"常用字" => _big5_gen_chars(0xA440, 0xC67E),
"次常用字" => _big5_gen_chars(0xC940, 0xF9D5),
"常用符號" => _big5_gen_chars(0xA140, 0xA3BF),
//"罕用符號" => _big5_gen_chars(0xC6A1, 0xC8FE),
//"控制碼" => _big5_gen_chars(0xA3C0, 0xA3E0),
);
// Save the result
$string = "\$_BIG5 = " . var_export($_BIG5, true) . ";\n";
xfupdate(_BIG5_VAR, $string);
return;
}
// _big5_gen_chars: Generate a range of Big5 characters
function _big5_gen_chars($start, $end)
{
$chars = array();
for ($code = $start; $code <= $end; ) {
$chars[] = pack("n", $code);
# Next character
$hi = $code & 0xFF00;
$lo = $code & 0x00FF;
if ($lo == 0xFE) {
$lo = 0x40;
$hi += 0x0100;
} elseif ($lo == 0x7E) {
$lo = 0xA1;
} else {
$lo++;
}
$code = $hi | $lo;
}
return $chars;
}
// big5_feq_chars: Return the Big5 frequently-used characters
function &big5_feq_chars()
{
init_big5();
return $GLOBALS["_BIG5"]["常用字"];
}
// big5_nonfeq_chars: Return the Big5 non-frequently-used characters
function &big5_nonfeq_chars()
{
init_big5();
return $GLOBALS["_BIG5"]["次常用字"];
}
// big5_punc_chars: Return the Big5 punctuation characters
function &big5_punc_chars()
{
init_big5();
return $GLOBALS["_BIG5"]["常用符號"];
}
?>