123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- <?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;
- }
|