12345,日本語,"カンマあり,文字列","ダブルクオテーション""のエスケープ確認"
配列を CSV に変換し、必要なエスケープを行う
スポンサーリンク
PHP で配列を CSV に変換するには fputcsv を使用すると簡単に変換できます。 fputcsv 関数は値にカンマやダブルクオテーションが含まれている場合、必要なエスケープを自動で行います。
php(書式) | |
1 | fputcsv(出力先, 配列) |
1 行だけCSV 変換して標準出力に出力する
php(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 | //変換する配列を作成 $ary_str = array( '12345', '日本語', 'カンマあり,文字列', 'ダブルクオテーション"のエスケープ確認', ); //CSV に変換して標準出力に表示 fputcsv(STDOUT, $ary_str); |
上記の実行結果は以下の通りです。カンマやダブルクオテーションを含む文字列はダブルクオテーションで囲まれ、さらにダブルクオテーションはエスケープされていることが分かります。
複数行を CSV 変換してファイルに出力する
php(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | //出力先のファイルを開きます $res_file = fopen('output.csv', 'w+'); //変換する配列を作成 $ary_csv_lines = array(); $ary_csv_lines[0] = array('1行目の1列目','1行目の2列目','1行目の3列目'); $ary_csv_lines[1] = array('2行目の1列目','2行目の2列目','2行目の3列目'); $ary_csv_lines[2] = array('3行目の1列目','3行目の2列目','3行目の3列目'); $ary_csv_lines[3] = array('4行目の1列目','4行目の2列目','4行目の3列目'); $ary_csv_lines[4] = array('5行目の1列目','5行目の2列目','5行目の3列目'); //1 行ずつ CSV に変換してファイルに出力します foreach($ary_csv_lines as $ary_csv_line){ fputcsv($res_file, $ary_csv_line); } //出力先のファイルを閉じます fclose($res_file); |
上記サンプルコードを実行すると、 output.csv に以下の内容が出力されます。
output.csv | |
1 2 3 4 5 | 1行目の1列目,1行目の2列目,1行目の3列目 2行目の1列目,2行目の2列目,2行目の3列目 3行目の1列目,3行目の2列目,3行目の3列目 4行目の1列目,4行目の2列目,4行目の3列目 5行目の1列目,5行目の2列目,5行目の3列目 |
連想配列(ハッシュ)を CSV に変換してファイルに出力する
連想配列の場合も、実装方法は普通の配列と同じです。
php(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | //出力先のファイルを開きます $res_file = fopen('output.csv', 'w+'); //変換する連想配列(ハッシュ)を作成します $ary_csv_lines = array(); $ary_csv_lines[0] = array('id' => 1, 'name' => 'PHP', 'type' => 'プログラミング言語'); $ary_csv_lines[1] = array('id' => 2, 'name' => 'MySQL', 'type' => 'データベース'); $ary_csv_lines[2] = array('id' => 3, 'name' => 'Oracle', 'type' => 'データベース'); $ary_csv_lines[3] = array('id' => 4, 'name' => 'Java', 'type' => 'プログラミング言語'); $ary_csv_lines[4] = array('id' => 5, 'name' => 'Perl', 'type' => 'プログラミング言語'); //1 行ずつ CSV に変換してファイルに出力します foreach($ary_csv_lines as $ary_csv_line){ //連想配列の場合、キーは無視して値だけが出力されます。 fputcsv($res_file, $ary_csv_line); } //出力先のファイルを閉じます fclose($res_file); |
上記サンプルコードを実行すると、 output.csv に以下の内容が出力されます。
output.csv | |
1 2 3 4 5 | 1,PHP,プログラミング言語 2,MySQL,データベース 3,Oracle,データベース 4,Java,プログラミング言語 5,Perl,プログラミング言語 |
スポンサーリンク
- 配列
- 配列を初期化する方法
- 多次元配列内の全ての文字列を一括で置換する方法
- 配列内の全ての文字列を一括で置換する方法
- 連想配列のキーの大文字・小文字を切り替える方法
- 配列の要素数を確認する方法
- foreach で配列の全ての要素を処理する方法
- 配列を並べ替える方法(ソートする方法)
- 連想配列(ハッシュ)を使用する方法
- 連想配列から特定のキーの値を取り出して配列を作成する方法
- 連想配列(ハッシュ)に指定したキーが存在するかを確認する方法
- 連想配列(ハッシュ)のキーの一覧を取得する方法
- 二次元配列のインデックスを特定のキーの値に置き換える方法
- 二次元配列を複数のキーを指定して並べ替える方法
- 二次元配列をソートキーを指定して並び替える方法
- 配列を CSV に変換し、必要なエスケープを行う