#php #offset
#php #смещение
Вопрос:
У меня ошибка неопределенного смещения, но я не знаю, что не так.
Вот код
<?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’s/Tutorials /PHP/Assignments/Назначение 3/quotes.php в строке 32
Обратите внимание: Неопределенное смещение: 4 в /Users /Lio/Documents /Eligio’s/Tutorials /PHP/Assignments/Назначение 3/quotes.php в строке 32
Обратите внимание: Неопределенное смещение: 3 в /Users /Lio/Documents /Eligio’s/Tutorials /PHP/Assignments/Назначение 3/quotes.php в строке 32
Обратите внимание: Неопределенное смещение: 2 в /Users /Lio/Documents /Eligio’s/Tutorials /PHP/Assignments/Назначение 3/quotes.php в строке 32
Обратите внимание: Неопределенное смещение: 1 в /Users/Lio/Documents /Eligio’s/Tutorials /PHP/Assignments/Назначение 3/quotes.php в строке 32
Комментарии:
1. пожалуйста, опубликуйте само сообщение об ошибке с ошибкой в строке.
Ответ №1:
Проблема находится перед вашим isset… итак, когда вы выполняете анализ и передаете результаты в список … который ожидает, что 6 параметров получат только 5 или меньше, и вы получите ошибку.
Я предлагаю следующую замену:
$line = fgets($filePointer);
$data=explode("|", $line);
while(count($data)<6) $data[]="";
list($firstName, $lastName, $contactMethod, $phoneMail,
$resideCity, $comments) = $data;
Это добавит достаточно данных для списка, чтобы установить переменные.
и должно сработать!
Удачного кодирования!
Комментарии:
1. Я проверил еще раз… Я удалил все данные, которые уже есть в текстовом формате, и прошел через форму (на этот раз с комментарием). Я все еще получал ту же ошибку…
2. Вы вставили
while(count($data)<6) $data[]="";
и внесли предложенные изменения? Не могли бы вы, пожалуйста, поставитьvar_dump($line);
и показать нам результат? Спасибо.