以PHP格式读取PHP中的.CSV文件

时间:2012-07-02 12:32:33

标签: php file csv

我目前正处于一个项目,我需要将一些信息发布到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; 
}

2 个答案:

答案 0 :(得分:0)

PHP内置了csv功能:

$arrayOfValues = str_getcsv(file_get_contents('myfile.csv'));
foreach($arrayOfValues as $row)
{
  foreach($row as $col)
  {
    echo $col . '&nbsp;';
  }
  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>";
}