nocc_webmail/webmail/utils/detect_cyr_charset.php
2022-01-03 15:03:38 +01:00

224 lines
22 KiB
PHP
Raw Permalink Blame History

<?php
/**
* Detect charset
*
* Copyright 2003 Alexander Sabournekov
*
* This file is part of NOCC. NOCC is free software under the terms of the
* GNU General Public License. You should have received a copy of the license
* along with NOCC. If not, see <http://www.gnu.org/licenses/>.
*
* @package NOCC
* @subpackage Utilities
* @license http://www.gnu.org/licenses/ GNU General Public License
* @version SVN: $Id: detect_cyr_charset.php 2861 2020-04-07 13:40:41Z oheil $
*/
$cad_StatsTableKoi = array(
'<27><>' => 1815, '<27><>' => 1446, '<27><>' => 1438, '<27><>' => 1405, '<27><>' => 1207, '<27><>' => 1194, '<27><>' => 1177, '<27><>' => 1140, '<27><>' => 1078,
'<27><>' => 1073, '<27><>' => 1034, '<27><>' => 1008, '<27><>' => 980, '<27><>' => 947, '<27><>' => 922, '<27><>' => 916, '<27><>' => 870, '<27><>' => 849, '<27><>' => 843,
'<27><>' => 840, '<27><>' => 828, '<27><>' => 824, '<27><>' => 797, '<27><>' => 794, '<27><>' => 794, '<27><>' => 761, '<27><>' => 752, '<27><>' => 726, '<27><>' => 722,
'<27><>' => 686, '<27><>' => 681, '<27><>' => 679, '<27><>' => 649, '<27><>' => 633, '<27><>' => 630, '<27><>' => 629, '<27><>' => 627, '<27><>' => 619, '<27><>' => 612,
'<27><>' => 599, '<27><>' => 596, '<27><>' => 595, '<27><>' => 592, '<27><>' => 581, '<27><>' => 578, '<27><>' => 573, '<27><>' => 551, '<27><>' => 548, '<27><>' => 547,
'<27><>' => 543, '<27><>' => 541, '<27><>' => 527, '<27><>' => 526, '<27><>' => 519, '<27><>' => 516, '<27><>' => 515, '<27><>' => 515, '<27><>' => 513, '<27><>' => 479,
'<27><>' => 478, '<27><>' => 464, '<27><>' => 460, '<27><>' => 457, '<27><>' => 448, '<27><>' => 446, '<27><>' => 438, '<27><>' => 437, '<27><>' => 431, '<27><>' => 431,
'<27><>' => 425, '<27><>' => 417, '<27><>' => 386, '<27><>' => 386, '<27><>' => 385, '<27><>' => 383, '<27><>' => 373, '<27><>' => 364, '<27><>' => 361, '<27><>' => 350,
'<27><>' => 347, '<27><>' => 346, '<27><>' => 346, '<27><>' => 344, '<27><>' => 343, '<27><>' => 342, '<27><>' => 341, '<27><>' => 340, '<27><>' => 337, '<27><>' => 335,
'<27><>' => 335, '<27><>' => 327, '<27><>' => 324, '<27><>' => 324, '<27><>' => 316, '<27><>' => 308, '<27><>' => 306, '<27><>' => 296, '<27><>' => 276, '<27><>' => 276,
'<27><>' => 267, '<27><>' => 264, '<27><>' => 263, '<27><>' => 259, '<27><>' => 253, '<27><>' => 253, '<27><>' => 253, '<27><>' => 250, '<27><>' => 243, '<27><>' => 242,
'<27><>' => 242, '<27><>' => 240, '<27><>' => 239, '<27><>' => 238, '<27><>' => 236, '<27><>' => 235, '<27><>' => 234, '<27><>' => 234, '<27><>' => 231, '<27><>' => 227,
'<27><>' => 225, '<27><>' => 225, '<27><>' => 222, '<27><>' => 220, '<27><>' => 219, '<27><>' => 218, '<27><>' => 215, '<27><>' => 214, '<27><>' => 210, '<27><>' => 210,
'<27><>' => 210, '<27><>' => 209, '<27><>' => 208, '<27><>' => 208, '<27><>' => 207, '<27><>' => 206, '<27><>' => 206, '<27><>' => 203, '<27><>' => 201, '<27><>' => 200,
'<27><>' => 196, '<27><>' => 195, '<27><>' => 193, '<27><>' => 192, '<27><>' => 187, '<27><>' => 184, '<27><>' => 184, '<27><>' => 181, '<27><>' => 179, '<27><>' => 175,
'<27><>' => 174, '<27><>' => 171, '<27><>' => 170, '<27><>' => 167, '<27><>' => 166, '<27><>' => 165, '<27><>' => 163, '<27><>' => 162, '<27><>' => 162, '<27><>' => 161,
'<27><>' => 161, '<27><>' => 160, '<27><>' => 160, '<27><>' => 156, '<27><>' => 155, '<27><>' => 154, '<27><>' => 153, '<27><>' => 151, '<27><>' => 150, '<27><>' => 149,
'<27><>' => 148, '<27><>' => 148, '<27><>' => 147, '<27><>' => 147, '<27><>' => 145, '<27><>' => 145, '<27><>' => 144, '<27><>' => 144, '<27><>' => 144, '<27><>' => 144,
'<27><>' => 142, '<27><>' => 139, '<27><>' => 139, '<27><>' => 136, '<27><>' => 136, '<27><>' => 136, '<27><>' => 135, '<27><>' => 132, '<27><>' => 132, '<27><>' => 131,
'<27><>' => 131, '<27><>' => 127, '<27><>' => 127, '<27><>' => 127, '<27><>' => 125, '<27><>' => 125, '<27><>' => 124, '<27><>' => 121, '<27><>' => 119, '<27><>' => 117,
'<27><>' => 116, '<27><>' => 114, '<27><>' => 113, '<27><>' => 113, '<27><>' => 111, '<27><>' => 111, '<27><>' => 107, '<27><>' => 105, '<27><>' => 105, '<27><>' => 104,
'<27><>' => 103, '<27><>' => 103, '<27><>' => 103, '<27><>' => 102, '<27><>' => 100, '<27><>' => 100, '<27><>' => 99, '<27><>' => 99, '<27><>' => 98, '<27><>' => 97,
'<27><>' => 97, '<27><>' => 96, '<27><>' => 91, '<27><>' => 90, '<27><>' => 90, '<27><>' => 90, '<27><>' => 88, '<27><>' => 88, '<27><>' => 88, '<27><>' => 87, '<27><>' => 86,
'<27><>' => 86, '<27><>' => 86, '<27><>' => 84, '<27><>' => 84, '<27><>' => 83, '<27><>' => 83, '<27><>' => 83, '<27><>' => 82, '<27><>' => 80, '<27><>' => 78, '<27><>' => 78,
'<27><>' => 75, '<27><>' => 75, '<27><>' => 75, '<27><>' => 74, '<27><>' => 73, '<27><>' => 73, '<27><>' => 72, '<27><>' => 72, '<27><>' => 70, '<27><>' => 69, '<27><>' => 69,
'<27><>' => 69, '<27><>' => 68, '<27><>' => 68, '<27><>' => 67, '<27><>' => 66, '<27><>' => 65, '<27><>' => 65, '<27><>' => 64, '<27><>' => 64, '<27><>' => 63, '<27><>' => 63,
'<27><>' => 62, '<27><>' => 62, '<27><>' => 62, '<27><>' => 61, '<27><>' => 61, '<27><>' => 59, '<27><>' => 59, '<27><>' => 58, '<27><>' => 57, '<27><>' => 57, '<27><>' => 56,
'<27><>' => 56, '<27><>' => 54, '<27><>' => 54, '<27><>' => 53, '<27><>' => 53, '<27><>' => 52, '<27><>' => 52, '<27><>' => 51, '<27><>' => 51, '<27><>' => 51, '<27><>' => 50,
'<27><>' => 50, '<27><>' => 50, '<27><>' => 49, '<27><>' => 49, '<27><>' => 48, '<27><>' => 48, '<27><>' => 48, '<27><>' => 48, '<27><>' => 47, '<27><>' => 46, '<27><>' => 46,
'<27><>' => 46, '<27><>' => 45, '<27><>' => 44, '<27><>' => 44, '<27><>' => 44, '<27><>' => 43, '<27><>' => 40, '<27><>' => 40, '<27><>' => 40, '<27><>' => 40, '<27><>' => 40,
'<27><>' => 40, '<27><>' => 40, '<27><>' => 40, '<27><>' => 39, '<27><>' => 39, '<27><>' => 39, '<27><>' => 38, '<27><>' => 37, '<27><>' => 37, '<27><>' => 36, '<27><>' => 36,
'<27><>' => 36, '<27><>' => 36, '<27><>' => 35, '<27><>' => 35, '<27><>' => 35, '<27><>' => 35, '<27><>' => 34, '<27><>' => 34, '<27><>' => 34, '<27><>' => 34, '<27><>' => 33,
'<27><>' => 33, '<27><>' => 33, '<27><>' => 33, '<27><>' => 33, '<27><>' => 33, '<27><>' => 33, '<27><>' => 32, '<27><>' => 32, '<27><>' => 31, '<27><>' => 31, '<27><>' => 31,
'<27><>' => 31, '<27><>' => 31, '<27><>' => 30, '<27><>' => 30, '<27><>' => 30, '<27><>' => 29, '<27><>' => 29, '<27><>' => 28, '<27><>' => 28, '<27><>' => 27, '<27><>' => 27,
'<27><>' => 26, '<27><>' => 26, '<27><>' => 26, '<27><>' => 26, '<27><>' => 26, '<27><>' => 25, '<27><>' => 25, '<27><>' => 25, '<27><>' => 25, '<27><>' => 24, '<27><>' => 24,
'<27><>' => 24, '<27><>' => 23, '<27><>' => 23, '<27><>' => 23, '<27><>' => 23, '<27><>' => 23, '<27><>' => 23, '<27><>' => 21, '<27><>' => 21, '<27><>' => 21, '<27><>' => 20,
'<27><>' => 20, '<27><>' => 20, '<27><>' => 20, '<27><>' => 20, '<27><>' => 20, '<27><>' => 20, '<27><>' => 19, '<27><>' => 19, '<27><>' => 19, '<27><>' => 19, '<27><>' => 18,
'<27><>' => 18, '<27><>' => 18, '<27><>' => 18, '<27><>' => 18, '<27><>' => 18, '<27><>' => 17, '<27><>' => 17, '<27><>' => 17, '<27><>' => 16, '<27><>' => 16, '<27><>' => 16,
'<27><>' => 15, '<27><>' => 15, '<27><>' => 15, '<27><>' => 15, '<27><>' => 15, '<27><>' => 15, '<27><>' => 15, '<27><>' => 14, '<27><>' => 14, '<27><>' => 14, '<27><>' => 14,
'<27><>' => 13, '<27><>' => 13, '<27><>' => 13, '<27><>' => 13, '<27><>' => 13, '<27><>' => 13, '<27><>' => 13, '<27><>' => 13, '<27><>' => 12, '<27><>' => 12, '<27><>' => 12,
'<27><>' => 12, '<27><>' => 12, '<27><>' => 12, '<27><>' => 12, '<27><>' => 12, '<27><>' => 12, '<27><>' => 12, '<27><>' => 12, '<27><>' => 12, '<27><>' => 12, '<27><>' => 12,
'<27><>' => 11, '<27><>' => 11, '<27><>' => 11, '<27><>' => 11, '<27><>' => 11, '<27><>' => 11, '<27><>' => 10, '<27><>' => 10, '<27><>' => 10, '<27><>' => 9, '<27><>' => 9,
'<27><>' => 9, '<27><>' => 9, '<27><>' => 9, '<27><>' => 9, '<27><>' => 9, '<27><>' => 9, '<27><>' => 8, '<27><>' => 8, '<27><>' => 8, '<27><>' => 8, '<27><>' => 8, '<27><>' => 8,
'<27><>' => 8, '<27><>' => 8, '<27><>' => 8, '<27><>' => 8, '<27><>' => 8, '<27><>' => 8, '<27><>' => 7, '<27><>' => 7, '<27><>' => 7, '<27><>' => 7, '<27><>' => 7, '<27><>' => 7,
'<27><>' => 7, '<27><>' => 7, '<27><>' => 7, '<27><>' => 7, '<27><>' => 6, '<27><>' => 6, '<27><>' => 6, '<27><>' => 6, '<27><>' => 6, '<27><>' => 6, '<27><>' => 6, '<27><>' => 6,
'<27><>' => 6, '<27><>' => 6, '<27><>' => 6, '<27><>' => 6, '<27><>' => 5, '<27><>' => 5, '<27><>' => 5, '<27><>' => 5, '<27><>' => 5, '<27><>' => 5, '<27><>' => 5, '<27><>' => 5,
'<27><>' => 5, '<27><>' => 5, '<27><>' => 5, '<27><>' => 5, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4,
'<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4,
'<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3,
'<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 2,
'<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2,
'<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2,
'<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1,
'<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1,
'<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1,
'<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1
);
$cad_StatsTableWin = array(
'<27><>' => 1815, '<27><>' => 1446, '<27><>' => 1438, '<27><>' => 1405, '<27><>' => 1207, '<27><>' => 1194, '<27><>' => 1177, '<27><>' => 1140, '<27><>' => 1078, '<27><>' => 1073,
'<27><>' => 1034, '<27><>' => 1008, '<27><>' => 980, '<27><>' => 947, '<27><>' => 922, '<27><>' => 916, '<27><>' => 870, '<27><>' => 849, '<27><>' => 843, '<27><>' => 840, '<27><>' => 828,
'<27><>' => 824, '<27><>' => 797, '<27><>' => 794, '<27><>' => 794, '<27><>' => 761, '<27><>' => 752, '<27><>' => 726, '<27><>' => 722, '<27><>' => 686, '<27><>' => 681, '<27><>' => 679,
'<27><>' => 649, '<27><>' => 633, '<27><>' => 630, '<27><>' => 629, '<27><>' => 627, '<27><>' => 619, '<27><>' => 612, '<27><>' => 599, '<27><>' => 596, '<27><>' => 595, '<27><>' => 592,
'<27><>' => 581, '<27><>' => 578, '<27><>' => 573, '<27><>' => 551, '<27><>' => 548, '<27><>' => 547, '<27><>' => 543, '<27><>' => 541, '<27><>' => 527, '<27><>' => 526, '<27><>' => 519,
'<27><>' => 516, '<27><>' => 515, '<27><>' => 515, '<27><>' => 513, '<27><>' => 479, '<27><>' => 478, '<27><>' => 464, '<27><>' => 460, '<27><>' => 457, '<27><>' => 448, '<27><>' => 446,
'<27><>' => 438, '<27><>' => 437, '<27><>' => 431, '<27><>' => 425, '<27><>' => 417, '<27><>' => 386, '<27><>' => 386, '<27><>' => 385, '<27><>' => 383, '<27><>' => 373, '<27><>' => 364,
'<27><>' => 361, '<27><>' => 350, '<27><>' => 347, '<27><>' => 346, '<27><>' => 346, '<27><>' => 344, '<27><>' => 343, '<27><>' => 342, '<27><>' => 341, '<27><>' => 340, '<27><>' => 337,
'<27><>' => 335, '<27><>' => 335, '<27><>' => 327, '<27><>' => 324, '<27><>' => 324, '<27><>' => 316, '<27><>' => 308, '<27><>' => 306, '<27><>' => 296, '<27><>' => 276, '<27><>' => 276,
'<27><>' => 267, '<27><>' => 264, '<27><>' => 263, '<27><>' => 259, '<27><>' => 253, '<27><>' => 253, '<27><>' => 253, '<27><>' => 250, '<27><>' => 243, '<27><>' => 242, '<27><>' => 242,
'<27><>' => 240, '<27><>' => 239, '<27><>' => 238, '<27><>' => 236, '<27><>' => 235, '<27><>' => 234, '<27><>' => 234, '<27><>' => 231, '<27><>' => 227, '<27><>' => 225, '<27><>' => 225,
'<27><>' => 222, '<27><>' => 220, '<27><>' => 219, '<27><>' => 218, '<27><>' => 215, '<27><>' => 214, '<27><>' => 210, '<27><>' => 210, '<27><>' => 210, '<27><>' => 209, '<27><>' => 208,
'<27><>' => 208, '<27><>' => 207, '<27><>' => 206, '<27><>' => 206, '<27><>' => 203, '<27><>' => 201, '<27><>' => 200, '<27><>' => 196, '<27><>' => 195, '<27><>' => 193, '<27><>' => 192,
'<27><>' => 187, '<27><>' => 184, '<27><>' => 184, '<27><>' => 181, '<27><>' => 179, '<27><>' => 175, '<27><>' => 174, '<27><>' => 171, '<27><>' => 170, '<27><>' => 167, '<27><>' => 166,
'<27><>' => 165, '<27><>' => 163, '<27><>' => 162, '<27><>' => 162, '<27><>' => 161, '<27><>' => 161, '<27><>' => 160, '<27><>' => 160, '<27><>' => 156, '<27><>' => 155, '<27><>' => 154,
'<27><>' => 153, '<27><>' => 151, '<27><>' => 150, '<27><>' => 149, '<27><>' => 148, '<27><>' => 148, '<27><>' => 147, '<27><>' => 147, '<27><>' => 145, '<27><>' => 145, '<27><>' => 144,
'<27><>' => 144, '<27><>' => 144, '<27><>' => 144, '<27><>' => 142, '<27><>' => 139, '<27><>' => 139, '<27><>' => 136, '<27><>' => 136, '<27><>' => 136, '<27><>' => 135, '<27><>' => 132,
'<27><>' => 132, '<27><>' => 131, '<27><>' => 131, '<27><>' => 127, '<27><>' => 127, '<27><>' => 127, '<27><>' => 125, '<27><>' => 125, '<27><>' => 124, '<27><>' => 121, '<27><>' => 119,
'<27><>' => 117, '<27><>' => 116, '<27><>' => 114, '<27><>' => 113, '<27><>' => 113, '<27><>' => 111, '<27><>' => 111, '<27><>' => 107, '<27><>' => 105, '<27><>' => 105, '<27><>' => 104,
'<27><>' => 103, '<27><>' => 103, '<27><>' => 103, '<27><>' => 102, '<27><>' => 100, '<27><>' => 100, '<27><>' => 99, '<27><>' => 99, '<27><>' => 98, '<27><>' => 97, '<27><>' => 97,
'<27><>' => 96, '<27><>' => 91, '<27><>' => 90, '<27><>' => 90, '<27><>' => 90, '<27><>' => 88, '<27><>' => 88, '<27><>' => 88, '<27><>' => 87, '<27><>' => 86, '<27><>' => 86, '<27><>' => 86,
'<27><>' => 84, '<27><>' => 84, '<27><>' => 83, '<27><>' => 83, '<27><>' => 83, '<27><>' => 82, '<27><>' => 80, '<27><>' => 78, '<27><>' => 78, '<27><>' => 75, '<27><>' => 75, '<27><>' => 75,
'<27><>' => 74, '<27><>' => 73, '<27><>' => 73, '<27><>' => 72, '<27><>' => 72, '<27><>' => 70, '<27><>' => 69, '<27><>' => 69, '<27><>' => 69, '<27><>' => 68, '<27><>' => 68, '<27><>' => 67,
'<27><>' => 66, '<27><>' => 65, '<27><>' => 65, '<27><>' => 64, '<27><>' => 64, '<27><>' => 63, '<27><>' => 63, '<27><>' => 62, '<27><>' => 62, '<27><>' => 62, '<27><>' => 61, '<27><>' => 61,
'<27><>' => 59, '<27><>' => 59, '<27><>' => 58, '<27><>' => 57, '<27><>' => 57, '<27><>' => 56, '<27><>' => 56, '<27><>' => 54, '<27><>' => 54, '<27><>' => 53, '<27><>' => 53, '<27><>' => 52,
'<27><>' => 52, '<27><>' => 51, '<27><>' => 51, '<27><>' => 51, '<27><>' => 50, '<27><>' => 50, '<27><>' => 50, '<27><>' => 49, '<27><>' => 49, '<27><>' => 48, '<27><>' => 48, '<27><>' => 48,
'<27><>' => 48, '<27><>' => 47, '<27><>' => 46, '<27><>' => 46, '<27><>' => 46, '<27><>' => 45, '<27><>' => 44, '<27><>' => 44, '<27><>' => 44, '<27><>' => 43, '<27><>' => 40, '<27><>' => 40,
'<27><>' => 40, '<27><>' => 40, '<27><>' => 40, '<27><>' => 40, '<27><>' => 40, '<27><>' => 40, '<27><>' => 39, '<27><>' => 39, '<27><>' => 39, '<27><>' => 38, '<27><>' => 37, '<27><>' => 37,
'<27><>' => 36, '<27><>' => 36, '<27><>' => 36, '<27><>' => 36, '<27><>' => 35, '<27><>' => 35, '<27><>' => 35, '<27><>' => 35, '<27><>' => 34, '<27><>' => 34, '<27><>' => 34, '<27><>' => 34,
'<27><>' => 33, '<27><>' => 33, '<27><>' => 33, '<27><>' => 33, '<27><>' => 33, '<27><>' => 33, '<27><>' => 33, '<27><>' => 32, '<27><>' => 32, '<27><>' => 31, '<27><>' => 31, '<27><>' => 31,
'<27><>' => 31, '<27><>' => 31, '<27><>' => 30, '<27><>' => 30, '<27><>' => 30, '<27><>' => 29, '<27><>' => 29, '<27><>' => 28, '<27><>' => 28, '<27><>' => 27, '<27><>' => 27, '<27><>' => 26,
'<27><>' => 26, '<27><>' => 26, '<27><>' => 26, '<27><>' => 26, '<27><>' => 25, '<27><>' => 25, '<27><>' => 25, '<27><>' => 25, '<27><>' => 24, '<27><>' => 24, '<27><>' => 24, '<27><>' => 23,
'<27><>' => 23, '<27><>' => 23, '<27><>' => 23, '<27><>' => 23, '<27><>' => 23, '<27><>' => 21, '<27><>' => 21, '<27><>' => 21, '<27><>' => 20, '<27><>' => 20, '<27><>' => 20, '<27><>' => 20,
'<27><>' => 20, '<27><>' => 20, '<27><>' => 20, '<27><>' => 19, '<27><>' => 19, '<27><>' => 19, '<27><>' => 19, '<27><>' => 18, '<27><>' => 18, '<27><>' => 18, '<27><>' => 18, '<27><>' => 18,
'<27><>' => 18, '<27><>' => 17, '<27><>' => 17, '<27><>' => 17, '<27><>' => 16, '<27><>' => 16, '<27><>' => 16, '<27><>' => 15, '<27><>' => 15, '<27><>' => 15, '<27><>' => 15, '<27><>' => 15,
'<27><>' => 15, '<27><>' => 15, '<27><>' => 14, '<27><>' => 14, '<27><>' => 14, '<27><>' => 14, '<27><>' => 13, '<27><>' => 13, '<27><>' => 13, '<27><>' => 13, '<27><>' => 13, '<27><>' => 13,
'<27><>' => 13, '<27><>' => 13, '<27><>' => 12, '<27><>' => 12, '<27><>' => 12, '<27><>' => 12, '<27><>' => 12, '<27><>' => 12, '<27><>' => 12, '<27><>' => 12, '<27><>' => 12, '<27><>' => 12,
'<27><>' => 12, '<27><>' => 12, '<27><>' => 12, '<27><>' => 12, '<27><>' => 11, '<27><>' => 11, '<27><>' => 11, '<27><>' => 11, '<27><>' => 11, '<27><>' => 11, '<27><>' => 10, '<27><>' => 10,
'<27><>' => 10, '<27><>' => 9, '<27><>' => 9, '<27><>' => 9, '<27><>' => 9, '<27><>' => 9, '<27><>' => 9, '<27><>' => 9, '<27><>' => 9, '<27><>' => 8, '<27><>' => 8, '<27><>' => 8, '<27><>' => 8,
'<27><>' => 8, '<27><>' => 8, '<27><>' => 8, '<27><>' => 8, '<27><>' => 8, '<27><>' => 8, '<27><>' => 8, '<27><>' => 8, '<27><>' => 7, '<27><>' => 7, '<27><>' => 7, '<27><>' => 7, '<27><>' => 7,
'<27><>' => 7, '<27><>' => 7, '<27><>' => 7, '<27><>' => 7, '<27><>' => 7, '<27><>' => 6, '<27><>' => 6, '<27><>' => 6, '<27><>' => 6, '<27><>' => 6, '<27><>' => 6, '<27><>' => 6, '<27><>' => 6,
'<27><>' => 6, '<27><>' => 6, '<27><>' => 6, '<27><>' => 6, '<27><>' => 5, '<27><>' => 5, '<27><>' => 5, '<27><>' => 5, '<27><>' => 5, '<27><>' => 5, '<27><>' => 5, '<27><>' => 5, '<27><>' => 5,
'<27><>' => 5, '<27><>' => 5, '<27><>' => 5, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4,
'<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 4, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3,
'<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3,
'<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 3, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2,
'<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2,
'<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 2, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1,
'<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1,
'<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1,
'<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1, '<27><>' => 1
);
/* lxnt: patched to return charset names that iconv() understands*/
function detect_charset($Data,$dbg_fl = 0) {
/* for many small pices of text - list of sender/subject*/
$rc = preg_match("/(.*)([\x7F-\xFF]+)/xU", $Data, $tst_ar);
if ($rc == 0) {
return 'US-ASCII';
} else {
$beg_charset = strpos($Data, $tst_ar[2]);
}
list($KoiMark,$WinMark) = GetCodeScoreAll($Data, $beg_charset);
$Ratio['koi8-r'] = $KoiMark/($WinMark + 1);
$Ratio['windows-1251'] = $WinMark/($KoiMark + 1);
list($MaxRation, $MaxRatioKey) = max_from_ratio($Ratio);
return $MaxRatioKey;
}
function max_from_ratio($ar) {
$max=0;
$max_key="";
//while (list($key,$val)=each($ar)) {
foreach($ar as $key => $val) {
if ($val>$max) {
$max=$val;
$max_key=$key;
}
}
reset($ar);
return array($max,$max_key);
}
function GetCodeScoreAll($Data,$beg_charset) {
global $cad_StatsTableWin, $cad_StatsTableKoi;
$PairSize = 2;
$Data = substr($Data, $beg_charset, 100);
$Data = preg_replace('/[\n\r]/', '', $Data);
//$old_locale = function_exists('nl_langinfo') ? nl_langinfo(LC_CTYPE) : 'ru_RU.KOI8-R';
setlocale(LC_CTYPE, 'ru_RU.KOI8-R');
$Mark_koi=0;
$Mark_win=0;
$cnt=0;
$max_detect_limit=10;
$sp = preg_split('/[\.\,\-\s\:\;\?\!\'\"\(\)\d<>]+/', $Data);
//while ( list($key2, $val2) = each($sp) ) {
foreach($sp as $key2 => $val2) {
/* for many small pices of text - words in mesaage body */
$rc = preg_match("/(.*)([\x7F-\xFF]+)/x", $val2);
if ($rc == 0) {
continue;
}
if ($cnt > $max_detect_limit) {
break;
} else {
$cnt++;
}
$dlina=strlen($val2)-$PairSize;
if ($dlina < 1) {
$cnt--; continue;
}
$val3=strtolower($val2);
if (ucfirst($val3) == $val2) {
$scaleK=2;
} else {
$scaleK=1;
}
if (substr($val3, 0, 1) . strtoupper(substr($val2, 1, strlen($val2))) == $val2) {
$scaleW=2;
} else {
$scaleW=1;
}
$Cur_mark_koi=0;
$Cur_mark_win=0;
for ($i=0; $i<$dlina; $i++ ) {
$pp=substr($val3, $i, $PairSize);
if (isset($cad_StatsTableKoi[$pp])) {
$Cur_mark_koi += $cad_StatsTableKoi[$pp];
}
if (isset($cad_StatsTableWin[$pp])) {
$Cur_mark_win += $cad_StatsTableWin[$pp];
}
}
$Mark_koi+=$Cur_mark_koi*$scaleK;
$Mark_win+=$Cur_mark_win*$scaleW;
}
$Mark_list=array($Mark_koi,$Mark_win);
//setlocale(LC_CTYPE,$old_locale);
return $Mark_list;
}