<?php
-
/**
- * imap_utf7_local.php
+ * functions/imap_utf7_local.php - utf7-imap functions
*
* Copyright (c) 1999-2004 The SquirrelMail Project Team
* Licensed under the GNU GPL. For full terms see the file COPYING.
*/
/**
- * @param string $str
- * @param string $to_encoding
- * @param string $from_encoding
- * @param string $default_charset
- * @return string
+ * Function that uses php mbstring functions to convert from and to utf7-imap charset
+ * @param string $str folder name
+ * @param string $to_encoding name of resulting charset
+ * @param string $from_encoding name of original charset
+ * @param string $default_charset default charset used by translation.
+ * @return string encoded folder name or ''
*/
-function sqimap_mb_convert_encoding($str, $to_encoding, $from_encoding, $default_charset)
-{
- // Allows mbstring functions only with iso-8859-*, utf-8 and
- // iso-2022-jp (Japanese)
- // koi8-r and gb2312 can be added only in php 4.3+
- if ( stristr($default_charset, 'iso-8859-') ||
- stristr($default_charset, 'utf-8') ||
- stristr($default_charset, 'iso-2022-jp') ) {
- if (function_exists('mb_convert_encoding')) {
- return mb_convert_encoding($str, $to_encoding, $from_encoding);
- }
+function sqimap_mb_convert_encoding($str, $to_encoding, $from_encoding, $default_charset) {
+ $supported_encodings=sq_mb_list_encodings();
+ if ( in_array(strtolower($default_charset),$supported_encodings) &&
+ function_exists('mb_convert_encoding')) {
+ return mb_convert_encoding($str, $to_encoding, $from_encoding);
}
return '';
}
+/**
+ * encode folder name to utf7-imap
+ *
+ * If mbstring functions do not support charset used by translation, falls back to iso-8859-1
+ * @param string $s folder name
+ * @return string utf7-imap encoded folder name
+ */
function imap_utf7_encode_local($s) {
global $languages, $squirrelmail_language;
return $utf7_s;
}
+/**
+ * converts folder name from utf7-imap to charset used by translation
+ *
+ * If mbstring functions do not support charset used by translation, falls back to iso-8859-1
+ * @param string $s folder name in utf7-imap
+ * @return string folder name in charset used by translation
+ */
function imap_utf7_decode_local($s) {
global $languages, $squirrelmail_language;
}
return $iso_8859_1_s;
}
-
+/**
+ * Converts string to base64
+ * @param string $s string
+ * @return string base64 encoded string
+ */
function encodeBASE64($s) {
$B64Chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+,';
$p = 0; // phase: 1 / 2 / 3 / 1 / 2 / 3...
return $e;
}
+/**
+ * Converts string from base64
+ * @param string $s base64 encoded string
+ * @return string decoded string
+ */
function decodeBASE64($s) {
$B64Values = array(
'A' => 0, 'B' => 1, 'C' => 2, 'D' => 3, 'E' => 4, 'F' => 5,