我不知道为什么我这么挣扎,但是我试图访问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
我显然在这里遗漏了一些东西,但我不知道它是什么。任何人都可以帮助我吗?
答案 0 :(得分:0)
PHP手册显示您没有将正确的参数传递给fgetcsv()
:
array fgetcsv ( resource $handle [, int $length = 0 [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\" ]]]] )
它需要分隔符之前的长度。
未定义的偏移是由于与explode()
的结果相比,列表中的参数过多而导致的。 var_export(explode(" ", $row));
会明白这一点。