HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 29.08.2009, 16:09
b3
Постоянный
Регистрация: 05.12.2004
Сообщений: 647
Провел на форуме:
1698585

Репутация: 818


Отправить сообщение для b3 с помощью ICQ
По умолчанию

Функция определения кодировки:
PHP код:
<?php
define
('LOWERCASE',3);
define('UPPERCASE',1);

function 
detect_cyr_charset($str) {
    
$charsets = Array(
                      
'k' => 0,
                      
'w' => 0,
                      
'd' => 0,
                      
'i' => 0,
                      
'm' => 0
                      
);
    for ( 
$i 0$length strlen($str); $i $length$i++ ) {
        
$char ord($str[$i]);
        
//non-russian characters
        
if ($char 128 || $char 256) continue;
        
        
//CP866
        
if (($char 159 && $char 176) || ($char 223 && $char 242)) 
            
$charsets['d']+=LOWERCASE;
        if ((
$char 127 && $char 160)) $charsets['d']+=UPPERCASE;
        
        
//KOI8-R
        
if (($char 191 && $char 223)) $charsets['k']+=LOWERCASE;
        if ((
$char 222 && $char 256)) $charsets['k']+=UPPERCASE;
        
        
//WIN-1251
        
if ($char 223 && $char 256$charsets['w']+=LOWERCASE;
        if (
$char 191 && $char 224$charsets['w']+=UPPERCASE;
        
        
//MAC
        
if ($char 221 && $char 255$charsets['m']+=LOWERCASE;
        if (
$char 127 && $char 160$charsets['m']+=UPPERCASE;
        
        
//ISO-8859-5
        
if ($char 207 && $char 240$charsets['i']+=LOWERCASE;
        if (
$char 175 && $char 208$charsets['i']+=UPPERCASE;
        
    }
    
arsort($charsets);
    return 
key($charsets);
}
?>
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ