- Back to Home »
- PHP »
- PHPでCSVファイルの操作
Posted by : Izumikawa Fukumi
2013年11月12日火曜日
今回CSVファイルの操作をご紹介しようと思います。
CSVファイルとXMLの違いは、XMLでは特定の要素(配列)でデータにアクセス出来る。CSVでは特定の要素は無い変わりに番号付きの配列で情報を取得出来ます。
どちらも配列としてデータを取得出来ます。
CSVの利点は通常の様にデータを追加出来る事です。
まずはCSVの中身を決めましょう。
■sample.csv
一般的にファイルを読み込み方法としては以下の方法になります。
■index,php
結果:
これが基本的な方法で情報を取得しています。
ソースを見てもあまり仕組みは理解出来ないですよね?
なら一度どのような形で取得されているのか見てみましょう。
■index.php
結果:
見たらわかるのですが、
1回の読み込みに1行取得しています。
2回目は2行目を読み込み配列に渡します。
これで原理が分かったと思います。
以下の様にして特定の情報だけの一覧取得も可能です。
タイトル,更新日,記事ファイル,ID サンプルタイトル,0000年00月00日,sample_document.txt,0001 サンプルタイトル2,0000年00月00日,sample_document2.txt,0002 サンプルタイトル3,0000年00月00日,sample_document3.txt,0003
一般的にファイルを読み込み方法としては以下の方法になります。
■index,php
<?php if($csv_file = fopen('sample.csv', 'r')){ print '<table border=1>'; while(($csv_print = fgetcsv($csv_file)) !== FALSE){ print '<tr>'; for($i=0; $i < count($csv_print); $i++){ print '<td>' . $csv_print[$i] . '</td>'; } print '</tr>'; } print '</table>'; } ?>
結果:
タイトル | 更新日 | 記事ファイル | ID |
サンプルタイトル | 0000年00月00日 | sample_document.txt | 0001 |
サンプルタイトル2 | 0000年00月00日 | sample_document2.txt | 0002 |
サンプルタイトル3 | 0000年00月00日 | sample_document3.txt | 0003 |
これが基本的な方法で情報を取得しています。
ソースを見てもあまり仕組みは理解出来ないですよね?
なら一度どのような形で取得されているのか見てみましょう。
■index.php
<?php $csv_file = fopen('sample.csv', 'r'); for($i=0; $i < 3; $i++){ $csv = fgetcsv($csv_file); print_r($csv); } ?>
結果:
Array | |
( | |
[0] => タイトル | |
[1] => 更新日 | |
[2] => 記事ファイル | |
[3] => ID | |
) | |
Array | |
( | |
[0] => サンプルタイトル | |
[1] => 0000年00月00日 | |
[2] => sample_document.txt | |
[3] => 0001 | |
) | |
Array | |
( | |
[0] => サンプルタイトル2 | |
[1] => 0000年00月00日 | |
[2] => sample_document2.txt | |
[3] => 0002 | |
) |
見たらわかるのですが、
1回の読み込みに1行取得しています。
2回目は2行目を読み込み配列に渡します。
これで原理が分かったと思います。
以下の様にして特定の情報だけの一覧取得も可能です。
<?php $csv_file = fopen('sample.csv', 'r'); for($i=0; $i < 3; $i++){ $csv = fgetcsv($csv_file); print $csv[1] . '<br>'; } ?>