PX : code

Recode by Dirk Ostendorf
Download this code


<?php

/* Written by Dirk Ostendorf (ostendorf@unity.de)

****
This class is provided with no guarantees that it will either
work properly or not trash your machine. So don't blame me if
it does. It works great for me though, and you can do whatever
you want to it in the name of free software.
****

I wanted to have a sort of 'recode' to convert ibmpc-strings from
a dbase-database to the latin1-charset to show them on a Windows PC
and the possibility to expand this class to do other recodings.

FUNCTIONS:
ibmpc_to_latin1($stringToConvert)    //recodes from ibmpc to latin1

*/
  
class convert
{
    var    
$onechar="";
    var    
$ascii=0;
    var    
$convertedString="";

    
// Conversion table from `ibmpc' charset to `latin1' charset.
    // Generated mechanically by GNU recode 3.4.

    
var $ibmpcToLatin1 = array(
      
0,   1,   2,   3,   4,   5,   6,   7,    /*   0 -   7 */
      
8,   9,  10,  11,  12,  13,  14,  15,    /*   8 -  15 */
     
16,  17,  18,  19182167,  22,  23,    /*  16 -  23 */
     
24,  25,  26,  27,  28,  29,  30,  31,    /*  24 -  31 */
     
32,  33,  34,  35,  36,  37,  38,  39,    /*  32 -  39 */
     
40,  41,  42,  43,  44,  45,  46,  47,    /*  40 -  47 */
     
48,  49,  50,  51,  52,  53,  54,  55,    /*  48 -  55 */
     
56,  57,  58,  59,  60,  61,  62,  63,    /*  56 -  63 */
     
64,  65,  66,  67,  68,  69,  70,  71,    /*  64 -  71 */
     
72,  73,  74,  75,  76,  77,  78,  79,    /*  72 -  79 */
     
80,  81,  82,  83,  84,  85,  86,  87,    /*  80 -  87 */
     
88,  89,  90,  91,  92,  93,  94,  95,    /*  88 -  95 */
     
96,  97,  98,  99100101102103,    /*  96 - 103 */
    
104105106107108109110111,    /* 104 - 111 */
    
112113114115116117118119,    /* 112 - 119 */
    
120121122123124125126127,    /* 120 - 127 */
    
199252233226228224229231,    /* 128 - 135 */
    
234235232239238236196197,    /* 136 - 143 */
    
201230198244246242251249,    /* 144 - 151 */
    
255214220162163165158159,    /* 152 - 159 */
    
225237243250241209170186,    /* 160 - 167 */
    
191169172189188161171187,    /* 168 - 175 */
    
248164253179180145,  20156,    /* 176 - 183 */
    
184185,  21175166174190168,    /* 184 - 191 */
    
192193194195142143146128,    /* 192 - 199 */
    
200144202203204205206207,    /* 200 - 207 */
    
208157210211212213153215,    /* 208 - 215 */
    
216217218219154221222152,    /* 216 - 223 */
    
133223131227132134181135,    /* 224 - 231 */
    
138130136137141173140139,    /* 232 - 239 */
    
240177149155147245247148,    /* 240 - 247 */
    
176151183150129178254160    /* 248 - 255 */
    
);

    
    function 
ibmpc_to_latin1($stringToConvert){
        for(
$i=0$i<strlen($stringToConvert); $i++){
            
$this->onechar    substr($stringToConvert,$i,1);
            
$this->ascii      ord($this->onechar);
            
$convertedString .= chr($this->ibmpcToLatin1[$this->ascii]);
        }
        return (
$convertedString);
    }
}
?>

Comments or questions?
PX is running PHP 5.2.17
Thanks to Miranda Productions for hosting and bandwidth.
Use of any code from PX is at your own risk.