diff options
| author | Nathan Kinkade <kinkade@measurementlab.net> | 2019-08-27 13:05:48 -0600 |
|---|---|---|
| committer | Nathan Kinkade <kinkade@measurementlab.net> | 2019-08-27 13:05:48 -0600 |
| commit | a6c179d56973e382205c8583568d635c37f814c8 (patch) | |
| tree | d144141439adac21f0c1bc2fc2caa85fd8135039 /lib/smarty-3.1.33/plugins/shared.mb_unicode.php | |
| parent | 34972193073432105b8659407af5a914b3686f81 (diff) | |
Updates smarty to v3.1.33.
Diffstat (limited to 'lib/smarty-3.1.33/plugins/shared.mb_unicode.php')
| -rw-r--r-- | lib/smarty-3.1.33/plugins/shared.mb_unicode.php | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/lib/smarty-3.1.33/plugins/shared.mb_unicode.php b/lib/smarty-3.1.33/plugins/shared.mb_unicode.php new file mode 100644 index 0000000..7d12065 --- /dev/null +++ b/lib/smarty-3.1.33/plugins/shared.mb_unicode.php @@ -0,0 +1,51 @@ +<?php +/** + * Smarty shared plugin + * + * @package Smarty + * @subpackage PluginsShared + */ +/** + * convert characters to their decimal unicode equivalents + * + * @link http://www.ibm.com/developerworks/library/os-php-unicode/index.html#listing3 for inspiration + * + * @param string $string characters to calculate unicode of + * @param string $encoding encoding of $string, if null mb_internal_encoding() is used + * + * @return array sequence of unicodes + * @author Rodney Rehm + */ +function smarty_mb_to_unicode($string, $encoding = null) +{ + if ($encoding) { + $expanded = mb_convert_encoding($string, 'UTF-32BE', $encoding); + } else { + $expanded = mb_convert_encoding($string, 'UTF-32BE'); + } + return unpack('N*', $expanded); +} + +/** + * convert unicodes to the character of given encoding + * + * @link http://www.ibm.com/developerworks/library/os-php-unicode/index.html#listing3 for inspiration + * + * @param integer|array $unicode single unicode or list of unicodes to convert + * @param string $encoding encoding of returned string, if null mb_internal_encoding() is used + * + * @return string unicode as character sequence in given $encoding + * @author Rodney Rehm + */ +function smarty_mb_from_unicode($unicode, $encoding = null) +{ + $t = ''; + if (!$encoding) { + $encoding = mb_internal_encoding(); + } + foreach ((array)$unicode as $utf32be) { + $character = pack('N*', $utf32be); + $t .= mb_convert_encoding($character, $encoding, 'UTF-32BE'); + } + return $t; +} |
