Seditio Source
Root |
./othercms/ips_4.3.4/admin/convertutf8/system/Text/Module/Mb.php
<?php
/**
 * @brief        Conversion module
 * @author        <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
 * @copyright    (c) Invision Power Services, Inc.
 * @license        https://www.invisioncommunity.com/legal/standards/
 * @package        IPS Tools
 * @since        4 Sept 2013
 */

namespace IPSUtf8\Text\Module;

/**
 * Native MB Conversion class
 */
class Mb extends \IPSUtf8\Text\Charset
{
   
/**
     * Converts a text string from its current charset to a destination charset using mb_convert_encoding.  If mb* functions are not available, logs an error to self::$errors.
     *
     * @param    string        Text string
     * @param    string        Text string char set (original)
     * @param    string        Desired character set (destination)
     * @return    @e string
     */
   
public function convert( $string, $from, $to='UTF-8' )
    {
        if ( static::
needsConverting( $string, $from, $to ) === false )
        {
            return
$string;
        }

        if (
function_exists( 'mb_convert_encoding' ) )
        {
           
$encodings    = array_map( 'strtolower', mb_list_encodings() );
           
            if(
in_array( strtolower( $to ), $encodings ) AND in_array( strtolower( $from ), $encodings ) )
            {
               
$text = mb_convert_encoding( $string, $to, $from );
            }
            else
            {
                static::
$errors[]    = "NO_MB_FUNCTION";
            }
        }
        else
        {
            static::
$errors[]    = "NO_MB_FUNCTION";
        }

        return
$text ? $text : $string;
    }
}