diff --git a/main/inc/lib/internationalization.lib.php b/main/inc/lib/internationalization.lib.php index ec83c79b7e..1cec5c7793 100755 --- a/main/inc/lib/internationalization.lib.php +++ b/main/inc/lib/internationalization.lib.php @@ -1399,40 +1399,6 @@ function api_transliterate($string, $unknown = '?', $from_encoding = null) { return $result; } -/** - * Converts character encoding of a xml-formatted text. If inside the text the encoding is declared, it is modified accordingly. - * @param string $string The text being converted. - * @param string $to_encoding The encoding that text is being converted to. - * @param string $from_encoding (optional) The encoding that text is being converted from. If it is omited, it is tried to be detected then. - * @return string Returns the converted xml-text. - */ -function api_convert_encoding_xml($string, $to_encoding, $from_encoding = null) { - return _api_convert_encoding_xml($string, $to_encoding, $from_encoding); -} - -/** - * Converts character encoding of a xml-formatted text into UTF-8. If inside the text the encoding is declared, it is set to UTF-8. - * @param string $string The text being converted. - * @param string $from_encoding (optional) The encoding that text is being converted from. If it is omited, it is tried to be detected then. - * @return string Returns the converted xml-text. - */ -function api_utf8_encode_xml($string, $from_encoding = null) { - return _api_convert_encoding_xml($string, 'UTF-8', $from_encoding); -} - -/** - * Converts character encoding of a xml-formatted text from UTF-8 into a specified encoding. If inside the text the encoding is declared, it is modified accordingly. - * @param string $string The text being converted. - * @param string $to_encoding (optional) The encoding that text is being converted to. If it is omited, the platform character set is assumed. - * @return string Returns the converted xml-text. - */ -function api_utf8_decode_xml($string, $to_encoding = null) { - if (empty($to_encoding)) { - $to_encoding = _api_mb_internal_encoding(); - } - return _api_convert_encoding_xml($string, $to_encoding, 'UTF-8'); -} - /** * Common multibyte string functions diff --git a/main/inc/lib/internationalization_internal.lib.php b/main/inc/lib/internationalization_internal.lib.php index 76fa0ef4da..5c1ee5a53e 100755 --- a/main/inc/lib/internationalization_internal.lib.php +++ b/main/inc/lib/internationalization_internal.lib.php @@ -15,16 +15,6 @@ */ -/** - * Internal constants - */ - -// A regular expression for accessing declared encoding within xml-formatted text. -// Published by Steve Minutillo, -// http://minutillo.com/steve/weblog/2004/6/17/php-xml-and-character-encodings-a-tale-of-sadness-rage-and-data-loss/ -define('_PCRE_XML_ENCODING', '//m'); - - /** * Global variables used by some callback functions */ @@ -614,32 +604,6 @@ function _api_html_entity_from_unicode($codepoint) { return '&#'.$codepoint.';'; } -/** - * Converts character encoding of a xml-formatted text. If inside the text the encoding is declared, it is modified accordingly. - * @param string $string The text being converted. - * @param string $to_encoding The encoding that text is being converted to. - * @param string $from_encoding (optional) The encoding that text is being converted from. If the value is empty, it is tried to be detected then. - * @return string Returns the converted xml-text. - */ -function _api_convert_encoding_xml(&$string, $to_encoding, $from_encoding) { - if (empty($from_encoding)) { - $from_encoding = api_detect_encoding_xml($string); - } - global $_api_encoding; - $_api_encoding = api_refine_encoding_id($to_encoding); - return api_convert_encoding(preg_replace_callback(_PCRE_XML_ENCODING, '_api_convert_encoding_xml_callback', $string), $to_encoding, $from_encoding); -} - -/** - * A callback for serving the function _api_convert_encoding_xml(). - * @param array $matches Input array of matches corresponding to the xml-declaration. - * @return string Returns the xml-declaration with modified encoding. - */ -function _api_convert_encoding_xml_callback($matches) { - global $_api_encoding; - return str_replace($matches[1], $_api_encoding, $matches[0]); -} - /** * Appendix to "Common multibyte string functions" diff --git a/main/inc/lib/text.lib.php b/main/inc/lib/text.lib.php index 0489bc3035..d042f9334b 100755 --- a/main/inc/lib/text.lib.php +++ b/main/inc/lib/text.lib.php @@ -94,6 +94,11 @@ function api_get_title_html(&$string, $output_encoding = null, $input_encoding = /* XML processing functions */ +// A regular expression for accessing declared encoding within xml-formatted text. +// Published by Steve Minutillo, +// http://minutillo.com/steve/weblog/2004/6/17/php-xml-and-character-encodings-a-tale-of-sadness-rage-and-data-loss/ +define('_PCRE_XML_ENCODING', '//m'); + /** * Detects encoding of xml-formatted text. * @param string $string The input xml-formatted text. @@ -115,6 +120,67 @@ function api_detect_encoding_xml($string, $default_encoding = null) { } +/** + * Converts character encoding of a xml-formatted text. If inside the text the encoding is declared, it is modified accordingly. + * @param string $string The text being converted. + * @param string $to_encoding The encoding that text is being converted to. + * @param string $from_encoding (optional) The encoding that text is being converted from. If it is omited, it is tried to be detected then. + * @return string Returns the converted xml-text. + */ +function api_convert_encoding_xml($string, $to_encoding, $from_encoding = null) { + return _api_convert_encoding_xml($string, $to_encoding, $from_encoding); +} + +/** + * Converts character encoding of a xml-formatted text into UTF-8. If inside the text the encoding is declared, it is set to UTF-8. + * @param string $string The text being converted. + * @param string $from_encoding (optional) The encoding that text is being converted from. If it is omited, it is tried to be detected then. + * @return string Returns the converted xml-text. + */ +function api_utf8_encode_xml($string, $from_encoding = null) { + return _api_convert_encoding_xml($string, 'UTF-8', $from_encoding); +} + +/** + * Converts character encoding of a xml-formatted text from UTF-8 into a specified encoding. If inside the text the encoding is declared, it is modified accordingly. + * @param string $string The text being converted. + * @param string $to_encoding (optional) The encoding that text is being converted to. If it is omited, the platform character set is assumed. + * @return string Returns the converted xml-text. + */ +function api_utf8_decode_xml($string, $to_encoding = null) { + if (empty($to_encoding)) { + $to_encoding = _api_mb_internal_encoding(); + } + return _api_convert_encoding_xml($string, $to_encoding, 'UTF-8'); +} + +/** + * Converts character encoding of a xml-formatted text. If inside the text the encoding is declared, it is modified accordingly. + * @param string $string The text being converted. + * @param string $to_encoding The encoding that text is being converted to. + * @param string $from_encoding (optional) The encoding that text is being converted from. If the value is empty, it is tried to be detected then. + * @return string Returns the converted xml-text. + */ +function _api_convert_encoding_xml(&$string, $to_encoding, $from_encoding) { + if (empty($from_encoding)) { + $from_encoding = api_detect_encoding_xml($string); + } + global $_api_encoding; + $_api_encoding = api_refine_encoding_id($to_encoding); + return api_convert_encoding(preg_replace_callback(_PCRE_XML_ENCODING, '_api_convert_encoding_xml_callback', $string), $to_encoding, $from_encoding); +} + +/** + * A callback for serving the function _api_convert_encoding_xml(). + * @param array $matches Input array of matches corresponding to the xml-declaration. + * @return string Returns the xml-declaration with modified encoding. + */ +function _api_convert_encoding_xml_callback($matches) { + global $_api_encoding; + return str_replace($matches[1], $_api_encoding, $matches[0]); +} + + /* CSV processing functions */ /**