访问 fgetcsv 返回的字符串

Accessing string returned by 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);
}

$datavar_dump 产生:

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

$rowvar_dump 产生:

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

当我 运行 程序时,我收到一个错误 Notice: undefined offset,特别是因为这一行:

list($cc, $pc, $pn, $an1, $ac1, $an2, $ac2, $lat, $lon) = explode(" ", $row);

我显然在这里遗漏了一些东西,但我不知道它是什么。谁能帮帮我?

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

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

需要分隔符前的长度

未定义的偏移量是由于与 explode() 的结果相比,您给出的参数太多而无法列出。 var_export(explode(" ", $row)); 会让这一点显而易见。