PHP: возникают проблемы с отображением данных CSV-файла в таблице на веб-странице - PullRequest
0 голосов
/ 31 марта 2019

Я пытаюсь прочитать данные из файла CSV и отобразить их в таблице. Однако вместо отображения в нескольких столбцах все данные отображаются в одном столбце.

Сначала я создал форму и записал ввод в файл CSV следующим образом:

<?php
# save the form data in csv file
$myfile = fopen("data.csv", "a+");
foreach ($_POST as $key) {
    fputcsv($myfile, explode(",", $key));
}
fclose($myfile);
?>

Затем я создал таблицу с использованием html и прочитал из файла следующим образом:

    <div class="container">
        <table>
            <tr>
                <th>Username</th>
                <th>Email</th> 
                <th>Password</th>
            </tr>
            <?php
            # read from the csv file
            $f = fopen("data.csv", "r");
            while (($line = fgetcsv($f)) !== false) {
                echo "<tr>\n";
                foreach ($line as $cell) {
                    echo "<td>" . htmlspecialchars($cell) . "</td>";
                }
                echo "</tr>\n";
            }
            fclose($f);
            echo "\n</table>";
            ?>
        </table>
    </div>

Вот что я получаю в качестве вывода:
enter image description here

Как видите, все входные данные находятся в одном столбце, но я хочу, чтобы имя пользователя, адрес электронной почты и пароль были указаны в соответствующем столбце.

1 Ответ

1 голос
/ 31 марта 2019

Ваша проблема в том, что вы записываете все значения данных формы в отдельные строки в своем первом фрагменте кода, поэтому вы читаете только одно значение за раз во втором фрагменте кода. Вам нужно изменить

foreach ($_POST as $key) {
    fputcsv($myfile, explode(",", $key));
}

до

fputcsv($myfile, $_POST);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...