2015-02-09 47 views
0

我有了以下结构:csv文件之间的字段:阅读PHP中的CSV文件有引号

"Trussville","L01","2352","Flatbed Truck" 
"Trussville","L01","2336","Tote Truck" 
"Trussville","L01","2379","Combo Truck" 
"Trussville","L01","2238","Tankwagon (Glycol Truck)" 
"Trussville","L01","2306","Combo Truck" 
"Trussville","L01","2364","Tankwagon 2690 gal (650, 550, 400, 390, 350, 350)" 
"Trussville","L01","2380","Combo Truck" 
"Trussville","L01","2382","Tankwagon 3500 gal (900, 600, 400, 400, 500, 700)" 

我使用下面的函数来分析和下面的读取CSV数据:

function fncRead($csvFile){ 
    //Open the file in read mode 
    $file_handle = fopen($csvFile, 'r'); 
    //Go through a loop 
    while (!feof($file_handle)) { 
     // get data using fgetcsv and push to an array 
     $line_of_text[] = fgetcsv($file_handle, 1024); 
    } 
    //Close the file after reading 
    fclose($file_handle); 
    //return the array of data 
    return $line_of_text; 
} 

得到以下结果我得到的是如下:

Array 
(
    [0] => Array 
     (
      [0] => Trussville 
      [1] => L01 
      [2] => 2352 
      [3] => Flatbed Truck 
"Trussville" 
      [4] => L01 
      [5] => 2336 
      [6] => Tote Truck 
"Trussville" 
      [7] => L01 
      [8] => 2379 
      [9] => Combo Truck 
"Trussville" 
      [10] => L01 
      [11] => 2238 
      [12] => Tankwagon (Glycol Truck) 
"Trussville" 
      [13] => L01 
      [14] => 2306 
      [15] => Combo Truck 
"Trussville" 
      [16] => L01 
      [17] => 2334 
      [18] => Tote Truck 
"Trussville" 
      [19] => L01 
      [20] => 2337 
      [21] => 1000 gallon def compatment 
"Trussville" 
      [22] => L01 
      [23] => 2338 
      [24] => DO NOT USE 
"Trussville" 
      [25] => L01 
      [26] => 2364 
      [27] => Tankwagon 2690 gal (650, 550, 400, 390, 350, 350) 
"Trussville" 

.................. 

我想什么已经是THI s:

Array 
(
    [0] => Array 
     (
      [0] => Trussville 
      [1] => L01 
      [2] => 2352 
      [3] => Flatbed Truck 
     ), 
    [1] => Array 
     (
      [0] => Trussville 
      [1] => L01 
      [2] => 2336 
      [3] => Tote Truck 
     ), 
..... 

我该怎么做?

+1

检查换行符。 – mario 2015-02-09 20:52:24

回答

2

PHP docs page for the fgetcsv() function报价:

注:如果在读文件不管是在何时或创建的Macintosh电脑PHP没有正确认识到行结尾,使auto_detect_line_endings运行时配置选项可帮助解决问题。

+0

谢谢你解决了这个问题:ini_set('auto_detect_line_endings',true); – 2015-02-09 21:06:20

1

看来你的文件丢失换行符(\ r \ n)的

请尝试以下,看看你是否得到相同的结果。如果你这样做,那肯定是文件。如果它有效,那么可能有关于使用f方法处理文件的内容。

function fncRead($csvFile){ 
    foreach(file($csvFile) as $value) 
    { 
      $$line_of_text[] = str_getcsv($value); 

    } 
    return $line_of_text; 
}