eightban's memo

残しておきたい記事をまとめてみました。

PHP

League/csvを利用しCSVを読込みテンプレートのExcelに書き込む ~ PHP

投稿日:

PHPにはCSVを読み書きする便利なライブラリがあります。Goodby CSV、Volcanus_Csv、League/csvなどありますが、説明が詳しいLeague/csvを利用してみます。

https://csv.thephpleague.com/

PHP >= 7.0.10 の場合はleague/csv:^9.0となります。

League/csvのインストール

まずcomposerでインストールです。簡単にインストールできます。

composer require league/csv

 

League/csvを使ったCSV読込処理の作成

簡単に短いコーディングで記述できます。

シフトJISの漢字のセルは「FALSE」となります。文字コードも指定できるようなので対応します。

日本語で説明しているサイトが見つからなかったので、英語のマニュアルのサイトを見ました。

https://csv.thephpleague.com/9.0/converter/charset/

use League\Csv\CharsetConverter

の追加と

$encoder = (new CharsetConverter())->inputEncoding('sjis-win');
$records = $encoder->convert($csv);

を置きえます。

fgetcsvを使った場合シフトJISでは文字化けが起きる可能性があるので、ライブラリを使うなどの対応をとったほうがよさそうです。

ただ、League/csvはメジャーバージョン違うと文法が違うことがあるので注意が必要です。

マニュアルとサンプルが充実していてよいライブラリと思います。

 

-PHP

Copyright© eightban's memo , 2018 All Rights Reserved Powered by STINGER.