我目前正处于一个项目,我需要将一些信息发布到csv文件然后回读,以便用户可以看到并编辑之前的信息。有点像数据库表,信息将在单元格中,它应该与另一行中的文本旁边有一些文本。
我的代码有两个表,一个显示来自csv的信息,一个显示将数据发送到csv,但是我希望将它合并,以便他们可以看到先前创建的信息是什么,然后他们可以编辑此信息点击提交,这是表格中显示的信息。
这是我的代码......
$myfile = "outputfile.csv";
if (!isset($_POST['submit'])) {
$f = fopen($myfile, 'r');
echo "<table>";
while (($line = fgetcsv($f)) !== false) {
echo "<tr>";
foreach ($line as $cell) {
echo "<td>" . htmlspecialchars($cell) . "</td>";
}
echo "</tr>\n";
}
fclose($f);
echo "\n</table>";
echo "
<form action='' method='POST'>
<table border='1'>
<tr>
<td><input name='var1' type='text'></td>
<td>MMR</td>
</tr>
<tr>
<td><input name='var2' type='text'></td>
<td>FIVE_IN_ONE</td>
</tr>
<tr>
<td><input name='var3' type='text'></td>
<td>BOOSTER</td>
</tr>
<tr>
<td><input name='var4' type='text'></td>
<td>MENC</td>
</tr>
</table>
<input name='submit' type='submit' value='Submit'>
</form>";
} else {
$text1 = $_POST['var1'];
$text2 = $_POST['var2'];
$text3 = $_POST['var3'];
$text4 = $_POST['var4'];
$fh = fopen($myfile, 'w+');
fwrite($fh, $text1 . "\r\n" . $text2 . "\r\n" . $text3 . "\r\n" . $text4);
fclose($fh);
echo $text1 . "<br>" . $text2 . "<br>" . $text3 . "<br>" . $text4;
}
答案 0 :(得分:0)
PHP内置了csv功能:
$arrayOfValues = str_getcsv(file_get_contents('myfile.csv'));
foreach($arrayOfValues as $row)
{
foreach($row as $col)
{
echo $col . ' ';
}
echo '<br>';
}
答案 1 :(得分:0)
正如大卫所说,使用str_getcsv。要将所有内容放在适当位置以便人们可以进行实时编辑,您需要显示如下表单:
$arrayOfValues = str_getcsv(file_get_contents('myfile.csv'));
foreach($arrayOfValues as $row)
{
$index=0;
echo "<tr>";
foreach($row as $col)
{
echo "<td><input name='var".$index."' type='text' value='".$col."'></td>";
$index++;
}
echo "</tr>";
}