Posted by : Izumikawa Fukumi 2013年11月12日火曜日

今回CSVファイルの操作をご紹介しようと思います。
CSVファイルとXMLの違いは、XMLでは特定の要素(配列)でデータにアクセス出来る。CSVでは特定の要素は無い変わりに番号付きの配列で情報を取得出来ます。

どちらも配列としてデータを取得出来ます。

CSVの利点は通常の様にデータを追加出来る事です。

まずはCSVの中身を決めましょう。

■sample.csv                                                                                            
タイトル,更新日,記事ファイル,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.txt0001
サンプルタイトル20000年00月00日sample_document2.txt0002
サンプルタイトル30000年00月00日sample_document3.txt0003




これが基本的な方法で情報を取得しています。


ソースを見てもあまり仕組みは理解出来ないですよね?
なら一度どのような形で取得されているのか見てみましょう。

■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>';
}
?>

- Copyright © I aim to creator. - Hatsune Miku - Powered by Blogger - Designed by Johanes Djogan -