【问题标题】:PHP: Having trouble displaying data of csv file in a table in the webpagePHP:无法在网页的表格中显示 csv 文件的数据
【发布时间】:2019-08-21 14:24:18
【问题描述】:

我正在尝试从 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>

这是我得到的输出:

如您所见,所有输入都在单列中但我希望用户名、电子邮件和密码在各自的列中。

【问题讨论】:

  • 您没有显示var_dump($_POST) 和/或HTML &lt;form&gt;

标签: php html file csv


【解决方案1】:

您的问题是您在第一段代码中将所有表单数据值写入单独的行,因此在第二段代码中一次只能读回一个值。你需要改变

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

fputcsv($myfile, $_POST);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 2017-08-02
    相关资源
    最近更新 更多