php将文件批量转换成utf8

将不是utf-8的目录下文件,批量转换成utf-8

<?php

header('Content-type: text/html; charset=utf-8');

// 配置PHP脚本内存使用上限
ini_set('memory_limit', '1024M');

// 配置文件所在的文件夹
$path = './templates';
// 获取文件夹下所有文件的URL
$result = scanFile($path);

// 循环处理所有文件的URL
foreach ($result as $file)
{
    // 读取文件的文本内容
    $content = file_get_contents($file);

    // 把文本内容的字符编码转成UTF-8
    $content = characet($content);

    // 把转后的文本内容写回文件中
    file_put_contents($file, $content);
}

echo '转换完成';

function scanFile($path)
{
    global $result;
    $files = scandir($path);
    foreach ($files as $file)
    {
        if ($file != '.' && $file != '..')
        {
            if (is_dir($path . '/' . $file))
            {
                scanFile($path . '/' . $file);
            }
            else
            {
                $result[] = $path . '/' . basename($file);
            }
        }
    }
    return $result;
}

function characet($data)
{
    if (!empty($data))
    {
        $fileType = mb_detect_encoding($data, array('UTF-8', 'GBK', 'LATIN1', 'BIG5'));
        if ($fileType != 'UTF-8')
        {
            $data = mb_convert_encoding($data, 'utf-8', $fileType);
        }
    }
    return $data;
}

?>

推荐阅读更多精彩内容