技术CTO-关注编程入门知识,提供编程入门教程

您的位置: 首页 > 原创文章 > 正文

文件夹批量转换编码程序

来源: 技术CTO 阅读:

在程序开发中我们经常要对文件进行编码转换,如果是单个文件转换可以手动处理,但是要对一个文件夹里面上百甚至上千个文件进行编码转换的话手动转换的工作量就很大了,试过网上的几个编码转换软件都不太好用于是自己写了一个程序来处理,原理很简单,取得文件的内容,然后用iconv函数转换为相应的编码后再写入到文件中,注意不能对图片转换,否则会损坏图片文件。

/**
* 把一个文件夹里的文件全部转码 注意:只能转一次 否则全部变乱码
* @param string $filename
*/
function change_code($filename,$input_encoding='gb2312',$output_encoding='utf-8'){
    if(file_exists($filename)){
        //如果是目录,采用递归继续转换
        if(is_dir($filename)){
            foreach (glob("$filename/*") as $key=>$value){
                change_code($value);
            }
        }else{
            $contents_before = file_get_contents($filename);
            $contents_after = iconv($input_encoding,$output_encoding,$contents_before);
            file_put_contents($filename, $contents_after);
        }
    }else{
        echo '参数错误';
        return false;
    }
}
change_code('./test');

本文出自技术CTO:http://www.jscto.net,转载请注明出处。

^_^ 如果您热爱技术、热爱编程,想与更多的朋友一起交流学习,欢迎加入本站官方QQ群:345733473 ^_^