【PHP入門】fputcsvでCSVファイルに書き込みをする方法!

・PHPでfputcsvの使い方を知りたい。
・CSVファイルに書き込みをしたいけど、やり方がわからない・・・。
・連想配列をCSVに書き込むこともできる?

PHPでfputcsvを使うと、CSVファイルに配列を書き込むことができます。ですが、やり方を詳しく知らない人も多いでしょう。

そこでこの記事では、PHPのfputcsvの使い方やCSVファイルに書き込みをする方法について解説していきます!

この記事を読めば、PHPのfputcsvの使い方がわかり、正しくCSVファイルに配列を書き込むことができるでしょう。

PHPでfputcsvの使い方がわからない、CSVファイルに配列を書き込みたいという人は、ぜひ最後までご覧ください。

fputcsvとは?

fputcsvとは、配列として渡されたものをCSVにフォーマットし、指定したファイルに書き込みをする関数です。

fputcsvは上記のように、5つのパラメータを指定することができます。

handle 有効なファイルポインタ(fopenやfsockopenなどで正常に開かれたファイルを指している必要がある)
fields 文字列の配列
delimiter(任意) フィールド区切りの文字(1文字)を指定する
enclosure(任意) フィールドを囲む文字(1文字)を指定する
escape_char(任意) 区切り文字や囲い込み文字などに認識されないためのエスケープ文字を指定する

fopenによって開かれたファイルを第1引数に指定し、文字列の配列を第2引数に指定することで、CSVファイルに書き込みをすることができます。

delimiterやenclosure、escape_charなどはオプションとして指定することが可能です。

fputcsvの使い方

では、実際にfputcsvの使い方について解説していきます。

使い方をまだ知らない人は、しっかり理解していきましょう。

fputcsvの基本的な使い方

コードの書き方は次の通り。

※あらかじめ「test.csv」というファイルを作成しているものとします。

まず、名前と出身地が入った配列「$list」があったとします。

fopen関数で第1引数に「./test.csv」を指定し、第2引数に書き込みのオープンモードである「w」を指定します。

このfopen関数を変数「$fp」に代入しておきましょう。

そして、配列の値を1つずつファイルに書き込むために、foreach文の繰り返し処理で「$list as $value」と指定します。

foreach文の中で、fputcsvを「$fp, $value」と指定し、CSVファイルに配列を書き込みます。

最後にfclose関数でファイルを閉じましょう。

結果を出力すると、次のようになります。

配列の値が、test.csvファイルに書き込まれていますね。

このように、fputcsvでCSVファイルと配列を指定することで、配列の値を1行ずつ書き込むことができます。

なので、使い方を覚えておきましょう。

連想配列の書き込みもできる

fputcsvを使うと、CSVファイルに配列を書き込むことができるとわかりました。

では、連想配列の場合は書き込みできるのでしょうか。

結論から言うと、fputcsvは連想配列でも書き込むことができます。

実際にコードに書いて、どのような結果になるのか見ていきましょう。

まず、上記のように「$fruites」という連想配列があったとします。

fopen関数で第1引数に「./test.csv」を指定し、第2引数に書き込みのオープンモードである「w」を指定します。

そして、配列のキーと値を繰り返し処理で書き込むために、foreach文で「$fruites as $key => $value」と指定しましょう。

foreach文の中は、fputcsvを「$fp, array($key, $value)」と指定し、CSVファイルに配列のキーと値を書き込みます。

最後にfclose関数でファイルを閉じましょう。

結果を出力すると、次のようになります。

連想配列のキーと値が、コンマ区切りでtest.csvファイルに書き込まれていますね。

このことから、fputcsvは連想配列でもCSVファイルに書き込むことができます。

なので、使い方を覚えておきましょう。

連想配列の仕組みについて、詳しく知りたい人は以下をご覧ください。

PHPの連想配列(Key-Value Array)の基礎をおさえよう

CSVファイルの読み込みをする方法

ここまでで、fputcsvを使って配列をCSVファイルに書き込みをする方法について解説しました。

では、このCSVファイルに書き込んだものを、今度は読み込んでみましょう。

CSVファイルから読み込みを行うには、fgetcsvを使うことで実装することができます。

fgetcsvは、fopen関数の「r」モードによって読み込まれたファイルのデータ(CSV形式)を配列にして出力する関数です。

実際のコードで使い方を見ていきましょう。

今回読み込むデータは上記の通りです。

名前と出身地をコンマで区切った配列をfgetcsvによって読み込みます。

まず、fopen関数で第1引数にCSVファイル「./test.csv」を指定し、オープンモードを読み込みの「r」に指定します。

このfopen関数を変数「$fp」に代入しておきましょう。

そして、ファイルの中にあるデータを1行ずつ出力したいので、while文に「$line = fgetcsv($fp)」と指定します。

while文の中には、var_dumpで$lineを指定しましょう。

最後にfclose関数でファイルを閉じます。

結果を表示すると、次のようになるでしょう。

CSVファイルの中身が配列として読み込まれましたね。

このように、fgetcsvを使えば、CSVに書き込みをしたデータを読み込むことができます。

fputcsvとセットで使い方を覚えて、CSV形式のファイル操作をできるようになるといいでしょう。

まとめ

今回は、PHPのfputcsvの使い方やCSVファイルに配列を書き込む方法について解説しました。

fputcsvは、配列をCSVファイルに書き込むことができる関数です。

fopen関数やfclose関数とセットで使うことで、開いたCSVファイルに書き込みをすることができます。

また、連想配列を書き込むこともできるので、今回解説したやり方を覚えておくといいでしょう。

この記事がPHPの学習に役立つと幸いです。

BLOGコンテンツをパーソナライズします

あなたは現在「プログラミング学習者」ですか?