2012-04-02 46 views
-1

我有一個腳本,從CSV文件讀入,有時它接收的CSV文件包含不均勻的分隔符/列的數量,所以第一行可能有30列,第二可以有20等。我可以自己想一些解決方案,例如:PHP讀取CSV與各種數量的分隔符

計算最寬行中的分隔符,然後將適當的數量附加到每個簡短的行以使它們均勻。

但我想知道是否有人有這樣做的更優雅的方法。

+0

做究竟是什麼? – 2012-04-02 23:14:50

+0

因此,在使分隔符均勻後,您需要回寫(修改)文件? – 2012-04-02 23:25:12

+0

爲什麼每一行首先需要相同數量的分隔符?你確定這是你的程序所必需的嗎? – dqhendricks 2012-04-02 23:31:32

回答

2

這取決於你正在使用閱讀CSV最優雅看到什麼是fgetcsv請參閱http://www.php.net/manual/en/function.fgetcsv.php更多信息

有計數CSV的數量有一個例子...

$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); 
} 

感謝

:)