rtoss - Blame information for rev 39

Subversion Repositories:
Rev:
Rev Author Line No. Line
39 roytam 1 <?php
8 roytam 2 function u2utf8($c) {
39 roytam 3         $ret = $str = '';
8 roytam 4         if ($c < 0x80) {
5                 $str .= $c;
6         } else if ($c < 0x800) {
7                 $str .= (0xC0 | $c >> 6);
8                 $str .= (0x80 | $c & 0x3F);
9         } else if ($c < 0x10000) {
10                 $str .= (0xE0 | $c >> 12);
11                 $str .= (0x80 | $c >> 6 & 0x3F);
12                 $str .= (0x80 | $c & 0x3F);
13         } else if ($c < 0x200000) {
14                 $str .= (0xF0 | $c >> 18);
15                 $str .= (0x80 | $c >> 12 & 0x3F);
16                 $str .= (0x80 | $c >> 6 & 0x3F);
17                 $str .= (0x80 | $c & 0x3F);
18         }
19         for ($i = 0;$i < strlen($str);$i += 3) $ret .= chr(substr($str, $i, 3));
20         return $ret;
21 }
22  
39 roytam 23 function utf8Encode($source) {
24         $utf8Str = $utf8val='';
25         $entityArray = explode('&#', $source);
26         $size = count($entityArray);
27         for($i = 0; $i < $size; $i++) {
8 roytam 28                 $utf8Substring='';
29                 $subStr = $entityArray[$i];
39 roytam 30                 $nonEntity = strstr($subStr, ';');
31                 if($nonEntity !== false) {
32                         $unicode = intval(substr($subStr, 0, strpos($subStr, ';') + 1));
8 roytam 33                         // determine how many chars are needed to reprsent this unicode char
34                         $utf8Substring .=u2utf8($unicode);
35 #                       for ($y = 0;$y < strlen($utf8val);$y += 3)
36 #                               $utf8Substring .= chr(substr($utf8val, $y, 3));
37  
39 roytam 38                         if(strlen ($nonEntity) > 1)
8 roytam 39                                 $nonEntity = substr ($nonEntity, 1); // chop the first char (';')
40                         else
41                                 $nonEntity = '';
42  
39 roytam 43                         $utf8Str .= $utf8Substring . $nonEntity;
8 roytam 44                 } else {
39 roytam 45                         $utf8Str .= $subStr;
8 roytam 46                 }
47         }
48  
49         return $utf8Str;
50 }
51  
52 ?>