function _api_convert_encoding_supports($encoding) { static $supports = array(); if (!isset($supports[$encoding])) { $supports[$encoding] = _api_get_character_map_name(api_refine_encoding_id($encoding)) != ''; } return $supports[$encoding]; }
/** * This function checks whether two $encoding are equal (same, equvalent). * @param string/array $encoding1 The first encoding * @param string/array $encoding2 The second encoding * @param bool $strict When this parameter is TRUE the comparison ignores aliases of encodings. When the parameter is FALSE, aliases are taken into account. * @return bool Returns TRUE if the encodings are equal, FALSE otherwise. */ function api_equal_encodings($encoding1, $encoding2, $strict = false) { static $equal_encodings = array(); if (is_array($encoding1)) { foreach ($encoding1 as $encoding) { if (api_equal_encodings($encoding, $encoding2, $strict)) { return true; } } return false; } elseif (is_array($encoding2)) { foreach ($encoding2 as $encoding) { if (api_equal_encodings($encoding1, $encoding, $strict)) { return true; } } return false; } if (!isset($equal_encodings[$encoding1][$encoding2][$strict])) { $encoding_1 = api_refine_encoding_id($encoding1); $encoding_2 = api_refine_encoding_id($encoding2); if ($encoding_1 == $encoding_2) { $result = true; } else { if ($strict) { $result = false; } else { $alias1 = _api_get_character_map_name($encoding_1); $alias2 = _api_get_character_map_name($encoding_2); $result = !empty($alias1) && !empty($alias2) && $alias1 == $alias2; } } $equal_encodings[$encoding1][$encoding2][$strict] = $result; } return $equal_encodings[$encoding1][$encoding2][$strict]; }