Changeset 635 for trunk/Common/UTF8.php


Ignore:
Timestamp:
Jan 19, 2014, 9:36:28 PM (11 years ago)
Author:
chronos
Message:
  • Upraveno: Jednotka UTF8 přepracována na třídu. Převodní tabulka se takto bude inicializovat pouze pokud bude skutečně vytvořena instance třídy.
  • Přidáno: V jednotce Table implementována tabulka jako obecná třída.
  • Upraveno: Stránkování ve výpisech implementováno jako samostatná třída.
  • Upraveno: Titulek stránky s názvem stránky není třeba zobrazovat jelikož název stránky se zobrazuje v titulku prohlížeče.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Common/UTF8.php

    r548 r635  
    3131*/
    3232
    33 $CharTable = array(
     33class Encoding
     34{
     35  function __construct()
     36  {
     37        $this->CharTable = array(
    3438  'iso2' => array(
    3539        0x80=>"\xc2\x80",
     
    520524  ),
    521525);
    522 
    523 
    524 function ToUTF8($String, $Charset = 'iso2')
    525 {
    526   global $CharTable;
    527 
    528   $Result = '';
    529   for($I = 0; $I < strlen($String); $I++)
     526  }
     527
     528  function ToUTF8($String, $Charset = 'iso2')
    530529  {
    531      if(ord($String[$I]) < 128) $Result .= $String[$I];
    532      else if(ord($String[$I]) > 127)
    533      {
    534        $Result .= $CharTable[$Charset][ord($String[$I])];
    535      }
     530    $Result = '';
     531    for($I = 0; $I < strlen($String); $I++)
     532    {
     533       if(ord($String[$I]) < 128) $Result .= $String[$I];
     534       else if(ord($String[$I]) > 127)
     535       {
     536         $Result .= $this->CharTable[$Charset][ord($String[$I])];
     537       }
     538    }
     539    return($Result);
    536540  }
    537   return($Result);
     541
     542  function FromUTF8($String, $Charset = 'iso2')
     543  {
     544    $Result = '';
     545    $UTFPrefix = '';
     546    for($I = 0; $I < strlen($String); $I++)
     547    {
     548      if(ord($String{$I}) & 0x80) // UTF control character
     549      {
     550        if(ord($String{$I}) & 0x40) // First
     551        {
     552          if($UTFPrefix != '') $Result .= chr(array_search($UTFPrefix, $this->CharTable[$Charset]));
     553          $UTFPrefix = $String{$I};
     554        }
     555        else $UTFPrefix .= $String{$I}; // Next
     556      } else
     557      {
     558        if($UTFPrefix != '') $Result .= chr(array_search($UTFPrefix, $this->CharTable[$Charset]));
     559        $UTFPrefix = '';
     560        $Result .= $String{$I};
     561      }
     562    }
     563    return($Result);
     564  }
    538565}
    539 
    540 function FromUTF8($String, $Charset = 'iso2')
    541 {
    542   global $CharTable;
    543 
    544   $Result = '';
    545   $UTFPrefix = '';
    546   for($I = 0; $I < strlen($String); $I++)
    547   {
    548     if(ord($String{$I}) & 0x80) // UTF control character
    549     {
    550       if(ord($String{$I}) & 0x40) // First
    551       {
    552        if($UTFPrefix != '') $Result .= chr(array_search($UTFPrefix, $CharTable[$Charset]));
    553         $UTFPrefix = $String{$I};
    554       }
    555       else $UTFPrefix .= $String{$I}; // Next
    556     } else
    557     {
    558       if($UTFPrefix != '') $Result .= chr(array_search($UTFPrefix, $CharTable[$Charset]));
    559       $UTFPrefix = '';
    560       $Result .= $String{$I};
    561     }
    562   }
    563   return($Result);
    564 }
Note: See TracChangeset for help on using the changeset viewer.