2013年2月24日日曜日

[PHP] CSV ファイルの読み書き

読み込み read.php
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title>PHP CSV 読み込み</title>
  </head>
  <body>
    <?php
$filepath = "sample.csv";
$data = file($filepath);
$num = 0;
echo "<table border=1>";
for ($i = 0; $i < sizeof($data); $i++) {
    $num++;
    $line = explode(",", $data[$i]); // csv ファイルの 1 行を "," 区切りで配列 $line に収める
    echo "<tr>";
    echo "<td>$line[0]</td><td>$line[1]</td>";
    echo "</tr>";
}
echo "</table>"
    ?>
  </body>
</html>

sample.csv
1,dog
2,cat

書き込み
write.php
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title>PHP CSV 書き込み</title>
  </head>
  <body>
    <?php
$filepath = "write.csv";
$fh = fopen($filepath, 'w');

$raw = array(); // 配列を準備

// 配列の先頭から順番にデータを入れていく
$raw[] = 1;
$raw[] = 2;
$raw[] = 3;
fputcsv($fh, $raw); // csv ファイルに書き込み
unset($raw); // 配列のクリア

// 配列の先頭から順番にデータを入れていく
$raw[] = 'A';
$raw[] = 'B';
$raw[] = 'C';
fputcsv($fh, $raw);
fclose($fh);

// 結果表示
$fh = fopen($filepath, 'r');
while (($r = fgetcsv($fh)) != FALSE) {
    print_r($r);
    print("<br/>\n");
}
fclose($fh);
    ?>
  </body>
</html>

書き込み結果 (write.csv)
1,2,3
A,B,C

0 件のコメント:

コメントを投稿