我试图通过CSV文件导入一些数据到我的数据库。 问题是,在开发的一开始,我使用Windows,所以我的csv文件写在MS Office上。 所以,当导入那里工作正常。 但切换到Linux(UBUNTU),同时保存CSV文件,它不显示数据,因为我想要的。 我也没有得到任何解决scheme。
这是由ms office在Windows机器上生成的csv生成的数组,它正常工作。
Array ( [0] => Array ( [0] => Student Name [1] => Student Roll [2] => Class [3] => Section [4] => Exam [5] => Subject [6] => Total Marks [7] => Grade [8] => Objective [9] => Subjective [10] => Practical ) [1] => Array ( [0] => Sample Name [1] => 123 [2] => Nine [3] => A [4] => Mid Term [5] => Math [6] => 80 [7] => A+ [8] => 40 [9] => 20 [10] => 20 ) )
但在Linux中我的CSV格式不能正常工作。 它将所有的数据推送到一个键和一个元素,如下所示。
Array ( [0] => Array ( [0] => Student Name Student Roll Class Section Exam Subject Total Marks Grade Objective Subjective Practical ) [1] => Array ( [0] => Samp0le Name 123 Nine A Mid Term Math 80 A+ 40 20 20 ) )
所以我真正的问题是我怎样才能阅读呢?
这是我编码的上一代数组:
$csv = array(); //$file = fopen('myCSVFile.csv', 'r'); ini_set("auto_detect_line_endings", true); while (($result = fgetcsv($fp)) !== false) { $csv[] = $result; } fclose($fp); echo '<pre>'; print_r($csv); echo '</pre>';
请帮助我,我真的很需要..
尝试这个
$file = "FNAC_SPECTACLES.csv"; $handle = fopen($file, "r"); $row = 1; while (($data = fgetcsv($handle, 0, ";","'")) !== FALSE) { if($row == 1) { // skip the first row } else { echo "<pre>"; print_r($data); } $row++; }
在分隔符的第三个参数中的fgetcsv()
要保存在csv文件中。 例如:逗号,分号等。
您已将文件另存为 – separate values using tab
而不是commas
。 再次save as
相同的文件,并选择commas
作为值分隔和double quotes
作为值分隔符的分隔符。