访问fgetcsv返回的字符串

时间:2016-05-15 02:35:49

标签: php fgetcsv

我不知道为什么我这么挣扎,但是我试图访问fgetcsv返回的数组中的字符串。我有这段代码:

if(($handle = fopen($path, "r")) !== FALSE)
{
    if(($data = fgetcsv($handle, "\t")) !== FALSE);
    {
        var_dump($data);

        foreach($data as $row)
        {
            list($cc, $pc, $pn, $an1, $ac1, $an2, $ac2, $lat, $lon) = explode(" ", $row);
            var_dump($row);
        }
    }

    fclose($handle);
}

var_dump的{​​{1}}收益:

$data

array(1) { [0] => string(46) "US 34050 FPO AA Erie 029 41.0375-111.6789 " } 的{​​{1}}收益:

var_dump

当我运行该程序时,我收到的错误是$row,特别是因为这一行:

string(46) "US  34050   FPO             AA      Erie    029                     41.0375 -111.6789

我显然在这里遗漏了一些东西,但我不知道它是什么。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

PHP手册显示您没有将正确的参数传递给fgetcsv()

array fgetcsv ( resource $handle [, int $length = 0 [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\" ]]]] )

它需要分隔符之前的长度。

未定义的偏移是由于与explode()的结果相比,列表中的参数过多而导致的。 var_export(explode(" ", $row));会明白这一点。