正如斯蒂芬所说,看起来阵列不是您所期望的,您可以做一些事情。
尝试使用
var_dump($pieces)
并查看数组实际包含的内容。您可以做的另一件事是防止错误并在代码中更具防御性,如下所示:
$file = fopen($txtFile, "r");
while(!feof($file)) {
$line = fgets($file);
$pieces = explode(",", $line);
if(isset($pieces[0]))
$date = $pieces[0];
if(isset($pieces[1]))
$open = $pieces[1];
if(isset($pieces[2]))
$high = $pieces[2];
if(isset($pieces[3]))
$low = $pieces[3];
if(isset($pieces[4]))
$close = $pieces[4];
if(isset($pieces[5]))
$volume = $pieces[5];
}
}
或者,在这种情况下,您可以只检查 $pieces 的长度,对于您的使用可能会更好更短,如下所示:
$file = fopen($txtFile, "r");
while(!feof($file)) {
$line = fgets($file);
$pieces = explode(",", $line);
if(sizeof($pieces) != 6){
//handle this case here
}
else
{
$date = $pieces[0];
$open = $pieces[1];
$high = $pieces[2];
$low = $pieces[3];
$close = $pieces[4];
$volume = $pieces[5];
}
}
这只是确保变量在尝试对其进行任何操作之前存在,并且将避免未定义索引的问题。