packages/ssoinabox-webui/root/usr/local/share/ssoinabox/htdocs/includes/smarty/plugins/shared.mb_unicode.php
changeset 0 3906ca745819
equal deleted inserted replaced
-1:000000000000 0:3906ca745819
       
     1 <?php
       
     2 /**
       
     3  * Smarty shared plugin
       
     4  *
       
     5  * @package Smarty
       
     6  * @subpackage PluginsShared
       
     7  */
       
     8 
       
     9 /**
       
    10  * convert characters to their decimal unicode equivalents
       
    11  *
       
    12  * @link http://www.ibm.com/developerworks/library/os-php-unicode/index.html#listing3 for inspiration
       
    13  * @param string $string   characters to calculate unicode of
       
    14  * @param string $encoding encoding of $string, if null mb_internal_encoding() is used
       
    15  * @return array sequence of unicodes
       
    16  * @author Rodney Rehm
       
    17  */
       
    18 function smarty_mb_to_unicode($string, $encoding=null) {
       
    19     if ($encoding) {
       
    20         $expanded = mb_convert_encoding($string, "UTF-32BE", $encoding);
       
    21     } else {
       
    22         $expanded = mb_convert_encoding($string, "UTF-32BE");
       
    23     }
       
    24     return unpack("N*", $expanded);
       
    25 }
       
    26 
       
    27 /**
       
    28  * convert unicodes to the character of given encoding
       
    29  *
       
    30  * @link http://www.ibm.com/developerworks/library/os-php-unicode/index.html#listing3 for inspiration
       
    31  * @param integer|array $unicode  single unicode or list of unicodes to convert
       
    32  * @param string        $encoding encoding of returned string, if null mb_internal_encoding() is used
       
    33  * @return string unicode as character sequence in given $encoding
       
    34  * @author Rodney Rehm
       
    35  */
       
    36 function smarty_mb_from_unicode($unicode, $encoding=null) {
       
    37     $t = '';
       
    38     if (!$encoding) {
       
    39         $encoding = mb_internal_encoding();
       
    40     }
       
    41     foreach((array) $unicode as $utf32be) {
       
    42         $character = pack("N*", $utf32be);
       
    43         $t .= mb_convert_encoding($character, $encoding, "UTF-32BE");
       
    44     }
       
    45     return $t;
       
    46 }
       
    47 
       
    48 ?>