PHP:在网页的表格中显示csv文件数据时遇到问题
我试图从CSV文件中读取数据并将其显示在表中。但是,所有数据不是显示在多列中,而是显示在一列中 首先,我创建了一个表单,并以以下方式将输入记录在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); ?>
<?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);