Основы PHP
  Что такое PHP?
  Возможности PHP
  Преимущества PHP
  История развития
  Что нового в PHP5?
  «Движок» PHP
  Переход на PHP 5.3
New Переход на PHP 5.6
  Введение в PHP
  Изучение PHP
  Основы CGI
  Синтаксис PHP
  Типы данных PHP
  Переменные в PHP
  Константы PHP
  Выражения PHP
  Операторы PHP
  Конструкции PHP
  Ссылки в PHP
  PHP и ООП
  Безопасность
  Функции PHP
  Функции по категориям
  Функции по алфавиту
  Стандартные функции
  Пользовательские
  PHP и HTTP
  Работа с формами
  PHP и Upload
  PHP и Cookies
  PHP и базы данных
  PHP и MySQL
  Документация MySQL
  Учебники
  Учебники по PHP
  Учебники по MySQL
  Другие учебники
  Уроки PHP
  Введение
  Самые основы
  Управление
  Функции
  Документация
  Математика
  Файлы
  Основы SQL
  Дата и время
  CURL
  Изображения
  Стили
  Безопасность
  Установка
  Проектирование БД
  Регулярные выражения
  Подготовка к работе
  Быстрый старт
  Установка PHP
  Установка MySQL
  Конфигурация PHP
  Download / Скачать
  Скачать Apache
  Скачать PHP
  Скачать PECL
  Скачать PEAR
  Скачать MySQL
  Редакторы PHP
  Полезные утилиты
  Документация
  PHP скрипты
  Скачать скрипты
  Инструменты
  PHP в примерах
  Новости портала
 Главная   »  Сборник статей
 
 

Автоматическое определение кодировки текста

Автор: Артем Денисенко

PHP скрипт для автоматического определения кодировки текста.

Оригинал: http://tony2001.phpclub.net/detect_charset/

<?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);

}

?>

 
 » Обсудить эту статью на форуме

 
 Сборник статей 
 Содержание раздела 
Есть еще вопросы или что-то непонятно - добро пожаловать на наш  форум портала PHP.SU 
 

 
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS