php - PHP:无法在网页的表格中显示 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);
?>
然后我使用 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));
}
至
fputcsv($myfile, $_POST);
推荐阅读
- python-3.x - 为什么分配的 RGB 值会自动更改?
- pentaho - 如何将每个特定的行值映射到 Pentaho 中的 ID?
- android - 使用 camera2 库进行相机预览
- c - 自定义 Windows 身份验证包的实现
- laravel - laravel 自定义验证器消息从另一个位置翻译
- nao-robot - 了解 Javascript 中的 Pepper 编程
- javascript - 如何将两个非常基本的函数转换为回调函数
- javascript - 在 JavaScript 中按外部日期属性对数组进行排序
- c# - 创建 TCP/IP 服务器的窗口服务 - 聊天应用程序
- python - 禁用关于视图函数不返回响应的 Flask 警告?