使用新行作为分隔符解析CSV

时间:2012-09-24 20:44:20

标签: php arrays excel parsing csv

我在从Excel导出的CSV文件中有以下内容

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

我如何使用PHP将其解析为数组?

目前我正在使用

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

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

但那不起作用。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

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

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

OR

$out=explode(",",$str);