Ошибка неопределенного смещения при чтении файла в таблицу

#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); и показать нам результат? Спасибо.