224 lines
22 KiB
PHP
224 lines
22 KiB
PHP
<?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;
|
||
}
|