Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:在网页的表格中显示csv文件数据时遇到问题_Php_Html_File_Csv - Fatal编程技术网

PHP:在网页的表格中显示csv文件数据时遇到问题

PHP:在网页的表格中显示csv文件数据时遇到问题,php,html,file,csv,Php,Html,File,Csv,我试图从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); ?>

我试图从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>
以下是我得到的输出:


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

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

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

您不显示var_dump$_POST和/或HTML。
fputcsv($myfile, $_POST);