2013年1月28日 星期一

PHP 讀 csv 檔:fgetcsv()

用 PHP 讀 csv 檔,沒想到還有專用的函式 XD

用法是先 fopen() ,然後再用 fgetcsv() 一行一行抓進來,每行都會存成一個 array 。
其中第二個 argument 是最大字串長度,在 PHP 5 裡面可以不給或是填 0 表示無上限,不過會比較慢。
每行的欄位數量可以不同沒有關係,用 count() 去算一下就好。
另外由於是一行一行處理,連 foreach 都省了 XD

範例程式如下:

<?php
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num fields in line $row: <br /></p>\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />\n";
        }
    }
    fclose($handle);
}
?>
Reference: http://php.net/manual/en/function.fgetcsv.php

沒有留言:

張貼留言