fgetcsv的问题

时间:2012-07-24 22:03:53

标签: fgetcsv

我有一个带有2列值的csv excel文件:纬度和经度。我需要分别访问每个单独的纬度和经度值。

但我甚至无法正确地将csv文件读入数组。由于我使用的是mac,我开始使用:

ini_set("auto_detect_line_endings", true);  
$handle = fopen("countlook.csv", "r");
$data = fgetcsv($handle, 100000, ",");

仅返回第一行(列标题)“纬度,经度”,没有任何实际值。

不知道我哪里出错了。任何建议都会非常受欢迎。

2 个答案:

答案 0 :(得分:1)

fgetcsv逐行读取文件,因此将其置于循环中以获取所有数据非常重要。

$headers = array();
$rows = array();
$c = 0;
while ($data = fgetcsv($handle, 0, ",")) {

        if ($c == 0) {
            $headers = $data;

        } else {
            $rows[] = $data;
        }

       $c ++;
    }
fclose($handle);

现在,您应该在headers变量中包含标题,并在rows变量中包含所有数据。

答案 1 :(得分:0)

尝试以下方法:

if (($handle = fopen($_FILES["file"]["tmp_name"], "r")) !== FALSE) {
    $data = array();
    while (($rawdata = fgetcsv($handle, 0, $delimiter)) !== FALSE) {
         for ($i=0; $i < count($rawdata); $i++) {
              $data[$i][] = trim($rawdata[$i]);
         }
    }
    fclose($handle);
    var_dump($data)
}