php csv 出力

デザイン五輪書

収集したデータをPHPでCSVファイルとして出力する方法

読了までの目安時間:約 8分

 

にほんブログ村 イラストブログ Photoshopへコンピュータグラフィックス ブログランキングへFC2ブログランキングブログランキングならblogram i2iブログランキング

収集したデータをPHPでCSVファイルとして出力する方法

管理しやすいCSVファイル

CSVファイルとは?

CSVファイル(Comma Separated Values File)とは、データがカンマで区切られ、行ごとに管理されているファイルの事です。

おかしん,okasin@sample.co.jp,男,宜しくお願いします。
名無し,nanashi@sample.co.jp,女,登録しました。

サイトでPHPスクリプトを利用して収集したCSVファイルを、Excelに読み込んで管理する事もできるので、とても利便性に長けています。

CSVファイル

CSVファイルをExcelで起動すると、自動的にカンマ毎にデータが区切られ、セルに収まります。
データの入ったセルをテーブルに変換する事で、効率的にデータを管理できます。

テーブルとして書式設定

また、データの範囲をテーブルに変換しておけば、データの追加も簡単に行えます。

▲もくじへ戻る

PHPでCSVファイルを出力する

PHPスクリプトを組み合わせる

サイトのフォームで収集したデータをCSVファイルで出力する為には、3段階の関数を使用します。

まず、fopen関数でデータを記録するファイルと、データの記述方式を指定します。
次に、fopen関数で指定した方法を使って、fputcsv関数で指定した配列をファイルに記述します。
最後に、fclose関数でCSVファイルを閉じます。

それぞれの関数について詳しく見て行きましょう。

▲もくじへ戻る

fopen関数

fopen関数とは、扱うファイル名を決定し、そこにどの様な形式でデータを書き込むかを指定する事ができます。
ここに指定したファイル名でファイルが出力されます。

<?php
$fp = fopen("扱うファイル名.csv", "モード");
?>

モードの部分に「w」と記述するとデータの「上書き」、「a」と記述するとデータが「追記」されます。
他にもモードの種類はありますが、通常は「a」を使用する事が多いと思います。

▲もくじへ戻る

fputcsv関数

fputcsv関数とは、指定した配列をカンマ区切りのCSV形式データとして出力する事のできる関数の事です。

<?php
$return = fputcsv($fp, $配列の変数名);
?>

「$fp」の部分はfopen関数のデータが読み込まれます。

fputcsv関数の優れている点が、カンマを含んだ文章を自動的に「"(ダブルコーテーション)」で囲ってくれると言う点です。
ですので、「こんにちは,おかしんです。」と言うデータが書き込まれた場合でも、「こんにちは」「おかしんです。」とは判断せず、「こんにちは,おかしんです。」と言う一括りでデータを扱う事が可能になります。

▲もくじへ戻る

fclose関数

最後にfclose関数でCSVファイルを閉じ、一連の作業を終了する事ができます。

<?php
fclose($fp);
?>

▲もくじへ戻る

CSVファイルの確認方法

CSVファイルはどこにある?

上記プログラムをサイトのフォームタグと組み合わせる事で、サーバー内にCSVファイルが生成されます。

CSVファイル

ファイル名はfopen関数で指定した名前のものが生成されます。
fopen関数のモードを「a」にしておけば、自動的にCSVファイルの中身のデータ量は増えて行きます。

データの中身を確認したい場合は、DreamweaverFFFTPなどのFTPソフトを使用して、CSVファイルをサーバーからダウンロードします。
ダウンロードして来たCSVファイルは、メモ帳やDreamweaverなどのエディタソフトやExcelなどで開く事ができます。

▲もくじへ戻る

Excelで文字化け!?

ただ、ダウンロードして来たCSVファイルをExcelで開く場合、少々不都合な点があります。
それは、文字コードの不適合です。

ブラウザで扱われる文字コードは、現在、「UTF-8」が主流です。
それに対し、Excelは「Shift_JIS」しか対応していません。
結果、ExcelでCSVファイルを開いても、文字化けを起こしてしまいます。

文字化け

これでは、とてもじゃないですが読む事はできませんよね?

昔はブラウザでも「Shift_JIS」が主流だったのですが、世界共通のUTF-8に変更になりました。
ExcelでもUTF-8が対応する日が来れば良いのですが・・・。

▲もくじへ戻る

CSVファイルの文字コードを変更する

では、Excelでの管理を諦めるしかないのでしょうか?
・・・いいえ。
ちょっと考えればひらめくと思うのですが、ダウンロードしたCSVファイルの文字コードを変えてやれば良いだけです。

ファイルの文字コードを変える場合、エディタソフトが大活躍します。
その中でも、今回は、「メモ帳」を使って説明をしてみましょう。

CSVファイルを右クリックします。
表示されたコンテキストメニューの中から「プログラムから開く」にマウスを合わせ、「メモ帳」を選択します。

CSVファイルをメモ帳で開く

「メニューバー」の「ファイル」の中の「名前を付けて保存」をクリックします。

名前を付けて保存

「名前を付けて保存」ダイアログが表示されたら、「文字コード」を「UTF-8」から「ANSI」に変更します。

ファイルの文字コードを変換

後は、「保存」をクリックして下さい。

さて、文字コードの変更後のファイルをExcelで開いてみて下さい。
問題なくファイルが表示されると思います。

▲もくじへ戻る

まとめ

メモ帳が活躍するとは・・・

今回は、サイトのフォームで収集したデータを、PHPスクリプトでCSVファイルとして出力する方法についてご紹介しました。
加えて、Excelの文字化け対応についても説明しました。

少々面倒かもしれませんが、難しいプログラムを組んで文字コードを変えるよりも、とても単純で分かりやすい方法だと思います。
あのメモ帳が活躍できますしね。

ぜひ、試してみて下さい。

にほんブログ村 イラストブログ Photoshopへコンピュータグラフィックス ブログランキングへFC2ブログランキングブログランキングならblogram i2iブログランキング

タグ :      

ホームページ作成 Webデザイン   コメント:0

この記事に関連する記事一覧

TOPへ戻る