ttrss/vendor/thecodingmachine/safe/generated/iconv.php

97 lines
2.5 KiB
PHP
Raw Normal View History

<?php
namespace Safe;
use Safe\Exceptions\IconvException;
/**
* Retrieve internal configuration variables of iconv extension.
*
* @param string $type The value of the optional type can be:
*
* all
* input_encoding
* output_encoding
* internal_encoding
*
* @return mixed Returns the current value of the internal configuration variable if
* successful.
*
* If type is omitted or set to "all",
* iconv_get_encoding returns an array that
* stores all these variables.
* @throws IconvException
*
*/
function iconv_get_encoding(string $type = "all")
{
error_clear_last();
$result = \iconv_get_encoding($type);
if ($result === false) {
throw IconvException::createFromPhpError();
}
return $result;
}
/**
* Changes the value of the internal configuration variable specified by
* type to charset.
*
* @param string $type The value of type can be any one of these:
*
* input_encoding
* output_encoding
* internal_encoding
*
* @param string $charset The character set.
* @throws IconvException
*
*/
function iconv_set_encoding(string $type, string $charset): void
{
error_clear_last();
$result = \iconv_set_encoding($type, $charset);
if ($result === false) {
throw IconvException::createFromPhpError();
}
}
/**
* Performs a character set conversion on the string
* str from in_charset
* to out_charset.
*
* @param string $in_charset The input charset.
* @param string $out_charset The output charset.
*
* If you append the string //TRANSLIT to
* out_charset transliteration is activated. This
* means that when a character can't be represented in the target charset,
* it can be approximated through one or several similarly looking
* characters. If you append the string //IGNORE,
* characters that cannot be represented in the target charset are silently
* discarded. Otherwise, E_NOTICE is generated and the function
* will return FALSE.
*
* If and how //TRANSLIT works exactly depends on the
* system's iconv() implementation (cf. ICONV_IMPL).
* Some implementations are known to ignore //TRANSLIT,
* so the conversion is likely to fail for characters which are illegal for
* the out_charset.
* @param string $str The string to be converted.
* @return string Returns the converted string.
* @throws IconvException
*
*/
function iconv(string $in_charset, string $out_charset, string $str): string
{
error_clear_last();
$result = \iconv($in_charset, $out_charset, $str);
if ($result === false) {
throw IconvException::createFromPhpError();
}
return $result;
}