我有Undefined Offset错误,但我不知道出了什么问题。
这是代码
<?php
$documentRoot = $_SERVER['DOCUMENT_ROOT'];
$fileName = "$documentRoot/Tutorials/PHP/Assignments/Assignment 3/data/quote.txt";
$filePointer = fopen($fileName, 'r');
$lineCounter = 0;
$display = "";
while(true)
{
$line = fgets($filePointer);
list($firstName, $lastName, $contactMethod, $phoneMail, $resideCity, $comments) = explode("|", $line);
if (!isset($comments))
{
$comments = "";
}
$lineCounter++;
if(feof($filePointer))
{
break;
}
if($lineCounter % 2 == 0)
{
$style = "style = 'background-color:white';";
}
else
{
$style = "style = 'background-color:lightgray';";
}
//Write to table
print"<tr $style>";
print"<td>$firstName</td>";
print"<td>$lastName</td>";
print"<td>$contactMethod</td>";
print"<td>$phoneMail</td>";
print"<td>$resideCity</td>";
print"<td>$comments</td>";
print"</tr>";
}
fclose($filePointer);
?>
我补充说:
if (!isset($comments))
{
$comments = "";
}
因为我认为出现偏移错误是因为我没有在评论中输入任何内容。但是,我仍然会收到此错误。
请帮忙。
以下是错误消息:
注意:未定义的偏移量:5个/ Users / Lio / Documents / Eligio / Tutorials / PHP / Assignments / Assignment 3 / quotes.php on the line 32
注意:未定义的偏移量:/用户/ Lio / Documents / Eligio的/ Tutorials / PHP /赋值/分配3 /第32行的quotes.php
注意:未定义的偏移量:3位于/ Users / Lio / Documents / Eligio / Tutorials / PHP / Assignments / Assignment 3 / quotes.php on the line 32
注意:未定义的偏移量:/用户/ Lio / Documents / Eligio / Tutorials / PHP / Assignments / Assignment 3 /第32行的quotes.php
注意:未定义的偏移量:/用户/ Lio / Documents / Eligio的/ Tutorials / PHP /赋值/分配3 /第32行的quotes.php
答案 0 :(得分:0)
问题出在你的确定之前...所以当你爆炸并将结果传递给列表时......预计6个参数只会收到5个或更少,你就会得到错误。
我建议更换以下内容:
$line = fgets($filePointer);
$data=explode("|", $line);
while(count($data)<6) $data[]="";
list($firstName, $lastName, $contactMethod, $phoneMail,
$resideCity, $comments) = $data;
这将为列表添加足够的数据以设置变量。
并且应该工作!
快乐的编码!