fputcsv関数を覚える!PHPでCSVファイルを出力する方法【初心者向け】

プログラミング初心者向けにPHPでCSVファイルを出力する方法について解説しています。fputcsv関数を使ってCSVファイルを出力する流れを実際にソースコードを書きながら説明しているので、ぜひ参考にしてみてください。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

PHPで書くCSVファイルを出力する方法について解説しています。

CSVファイルを扱う際に便利な関数があるので、覚えておくとCSVファイルを出力する際や読み込む際に役立つでしょう。実際にCSVファイルを出力する流れをソースコードを書いて説明しているので、ぜひ書きながら理解していきましょう。

 

なお本記事は、TechAcademyのPHPオンライン講座の内容をもとにしています。

 

大石ゆかり

田島メンター!前回、CSVファイルをPHPに読み込む方法を教えてもらったと思うんですけど、逆にCSVファイルにするにはどうしたらいいんですか〜?

田島悠介

CSVファイルに出力するには、また別の関数を使うから詳しく見ていこうか!

大石ゆかり

がんばって覚えますね♪

 

CSVファイルを出力する関数「fputcsv」

PHPで配列からCSVファイルに出力するのに便利な関数として、「fputcsv関数」があります。fputcsv関数の使い方は以下のとおりです。

fputcsv($file_handler, $array);

$file_handlerはfopen関数の出力結果です。確認のため、書き込みのためのfopen関数の使い方は

$file_handler = fopen("出力するCSVファイルのパス", "w");

です。また、CSVに書き込む$array変数は

$array = array("名前", "身長", "血液型");

のような通常の配列で構いません。

 

実際に書いてみよう

それでは実際に書いてみましょう。

output_csv.php
---------------------------------
// CSVファイルに書き込む配列を定義します。
$ary = array(
  array("名前", "年齢", "血液型"),
  array("太郎", "21", "O"),
  array("ジョン", "23", "A"),
  array("ニキータ", "32", "AB"),
  array("次郎", "22", "B")
 );
// ファイルを書き込み用に開きます。
$f = fopen("test.csv", "w");
// 正常にファイルを開くことができていれば、書き込みます。
if ( $f ) {
  // $ary から順番に配列を呼び出して書き込みます。
  foreach($ary as $line){
    // fputcsv関数でファイルに書き込みます。
    fputcsv($f, $line);
  } 
}
// ファイルを閉じます。
fclose($f);
---------------------------------

始めにCSVファイルに書き込むためのデータとなる配列$aryを定義します。

次に書き込み用にtest.csvを開き(作成し)、正常にtest.csvを開くことができていれば、$aryから順番に配列を取り出してきてtest.csvに一行ずつ書き込んでいきます。出力結果を開くと、次のように書き込まれています。

test.csv
---------------------------------
名前,年齢,血液型
太郎,21,O
ジョン,23,A
ニキータ,32,AB
次郎,22,B

———————————

 

[PR] PHPのプログラミングで挫折しない学習方法を動画で公開中

まとめ

PHPでプログラムを作成していると、CSVファイルを出力する場面というのはしばしばあります。

その時にfputcsv関数を使うことで簡単にCSVファイルを作成することができますので、ぜひ活用して下さい。

PHPをさらに勉強したい場合は、PHPで構文チェックを行う方法PHPとHTMLをまとめてコメントアウトする方法についても合わせて読んでみてください。

田島悠介

「f~~」って関数が多いけど全部必要な手順だから書き忘れないようにね!

大石ゆかり

「fopen」とかの「f」ってファイルって意味ですか?

田島悠介

そうだね!他にもURLをオープンする時なんかにも使うから知っておくと良いかもね!

大石ゆかり

そうなんですね!ありがとうございます♪

 

また、PHPを勉強していて、

  • もっと効率的に勉強したい
  • 誰かに聞きながら学びたい
  • 自分でWebサービスを作りたい

と思ったことはないでしょうか。

 

そんな方のために、TechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。

独学に限界を感じている場合はご検討ください。