PHP轉換文件夾下所有文件編碼

y3c5 9年前發布 | 1K 次閱讀 PHP

PHP轉換文件夾下所有文件的編碼 適合發布網站的其他編碼版本 比如你有一個GBK版本 你想有一個UTF8版本 或者你只有GBK的源碼 你想二次開發 但是你不想改變IDE的編碼方式 你可以用這個程序將其批量轉化為UTF8:

代碼如下:

<?php
/**
 * 把一個文件夾里的文件全部轉碼 只能轉一次 否則全部變亂碼
 * @param string $filename
 */
function iconv_file($filename,$input_encoding='gbk',$output_encoding='utf-8')
{
    if(file_exists($filename))
    {
        if(is_dir($filename))
        {
            foreach (glob("$filename/*") as $key=>$value)
            {
                iconv_file($value);
            }
        }
        else 
        {
            $contents_before = file_get_contents($filename);
            /*$encoding = mb_detect_encoding($contents_before,array('CP936','ASCII','GBK','GB2312','UTF-8'));
            echo $encoding;
            if($encoding=='UTF-8')  mb_detect_encoding函數不工作
            {
                return;
            }*/
            $contents_after = iconv($input_encoding,$output_encoding,$contents_before);
            file_put_contents($filename, $contents_after);
        }
    }
    else 
    {
        echo '參數錯誤';
        return false;
    }
}
iconv_file('./test');
?>

 本文由用戶 y3c5 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!