2012-09-24 51 views
0

我在從Excel解析CSV使用新行作爲分隔符

Lol,Man,11 
Hello,World,11 
My,Name,12 
Is,Epic,11 

我將如何解析這個使用PHP陣列導出CSV文件下面?

目前我使用

$line = file_get_contents("Day1.CSV"); 

$parsed = str_getcsv(
    $line, # Input line 
    ',', # Delimiter 
    '"', # Enclosure 
    '//' # Escape char 
); 

但是,這不是工作。

+1

只是在逗號上爆炸 – 2012-09-24 20:47:33

+0

它有新的線條分離。下面的代碼完成這項工作。 – Michael

+0

我假設你已經把這部分留下了,很明顯。我的錯誤 – 2012-09-24 21:47:47

回答

2

您可以使用fgetcsv(例如,從手冊頁)

if (($handle = fopen("Day1.CSV", "r")) !== FALSE) 
{ 
    while (($data = fgetcsv($handle, 1000, ",", "//")) !== FALSE) 
    { 
     // do something with the data here 
     echo $data[0] . " - ". $data[1] . " - ". $data[2] . "</br>" ; 
    } 
    fclose($handle); 
} 

或者在您的實現,你可以這樣做:

$contents = file_get_contents("Day1.CSV"); 

$data = str_getcsv("\n"); 

foreach ($data as $row) 
{ 
    $output = str_getcsv($row, ',', '"', '//'); 

    // do something with the data here 
    echo $output[0] . " - " $output[1] . " - " $output[2] . "\n"; 
} 

HTH

+0

太好了。導致PHP錯誤的幾個錯誤: 在此處修復:http://pastebin.com/4LRG14n2 謝謝! – Michael

+0

感謝您的指針。編輯上述內容以反映這些更正。 –

0
<?php 
$str="Lol,Man,11"; 

$out=str_getcsv($str,",",'',''); 

print_r($out); //Array ([0] => Lol [1] => Man [2] => 11) 

OR

$out=explode(",",$str); 
相關問題