PHPでテキストの文字コードを変換

今回は、前回書いたこのコードを用いた文字コードの変換について、自分のコードを用いてより詳しく紹介する。


mb_convert_encoding
$infname    入力ファイル名
$incode     入力ファイル名の文字コード
$outfname     出力ファイル名
$outcode      出力ファイルの文字コード

実際に書いたコードは

$infname = "FREE_WiFi.csv";
$outfname = "FREE.csv";
$incod = "sjis";
$outcod = "utf-8";

$message = convertCode($infname, $incod, $outfname, $outcode, $nl);
echo $message;

function convertCode($infname, $incod, $outfname, $outcode, $nl)
{
    $incsv = file_get_contents($infname);
    if ($incsv==false) {
        return "変換失敗:{$infname} が見あたりません.";
    }
    $outcsv = mb_convert_encoding($incsv, $outcod, $incod);

    $outfp = fopen($outfname, "wb");
    if ($outfp == false) {
        return "変換失敗:{$outfname} に書き込むことができません.";
    }
    fwrite($outfp, $outcsv);
    fclose($outfp);

    return "変換成功:{$infname} => {$outfname}";
}

関数 file_get_contents を使って一気にテキストファイルを読み込む。
続いて、関数 mb_convert_encoding で文字コードを変換する。
最後に、関数 fopen 、 fwrite 、 fclose を使って変換したファイルを保管する。 これで、文字形式を変換することが出来る。