97 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?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;
 | |
| }
 |