Heim >php教程 >php手册 >php 编码转换

php 编码转换

WBOY
WBOYOriginal
2016-06-13 10:03:111148Durchsuche

编码转换

这段代码是ThinkPHP框架中的,感觉很常用,所以单独拎出来,大家共同学习一下。

function auto_charset($fContents,$from='',$to='')
{
    if( strtoupper($from) === strtoupper($to) || empty($fContents) || (is_scalar($fContents) && !is_string($fContents)) ){
        //如果编码相同或者非字符串标量则不转换
        return $fContents;
    }
    $from   =  strtoupper($from)=='UTF8'? 'utf-8':$from;
    $to       =  strtoupper($to)=='UTF8'? 'utf-8':$to;
    if(is_string($fContents) ) {
                if(function_exists('mb_convert_encoding')){
            return mb_convert_encoding ($fContents, $to, $from);
        }elseif(function_exists('iconv')){
            return iconv($from,$to,$fContents);
        }else{
            exit('转换失败');
            return $fContents;
        }
    }
    elseif(is_array($fContents)){
        foreach ( $fContents as $key => $val ) {
                        $_key =         auto_charset($key,$from,$to);
            $fContents[$_key] = auto_charset($val,$from,$to);
                        if($key != $_key ) {
                                unset($fContents[$key]);
                        }
        }
        return $fContents;
    }
    elseif(is_object($fContents)) {
                $vars = get_object_vars($fContents);
        foreach($vars as $key=>$val) {
            $fContents->$key = auto_charset($val,$from,$to);
        }
        return $fContents;
    }
    else{
        return $fContents;
    }
}
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:实例学习PHP中的正则表达式Nächster Artikel:php dir 函数教程