如何使用 PHP 和 fopen 打开 CSV 文件

How to open a CSV-fil with PHP and fopen

使用我在互联网上找到的不同代码片段,我将这段代码放在一起:

HTML:

<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="csv" value="" />
<input type="submit" name="submit" value="Save" /></form>

PHP:

<?php
$file = fopen($csv, 'r');
  echo "<table>" ;
while (($line = fgetcsv($file)) !== FALSE) {
  //$line is an array of the csv elements
  echo "<tr><td>";
  echo $line[0];
  echo "</td><td>";
  echo $line[2];
  echo "</td><td>";
  echo $line[5] * 1000;
  echo "</td></tr>";


}
fclose($file) . " ";

echo "</table>";

?>

这行不通,但如果我替换

fopen('MatchResults-12789503873441817.csv'

fopen('<name of ulpaded file>.csv'

效果很好。

关于如何解决这个问题有什么建议吗?

编辑: 已更改

$file = fopen('csv', 'r');

$file = fopen($csv, 'r');

当您使用 post 的方法时,如

<form action="upload.php" method="post" enctype="multipart/form-data">
// -----------------------^^^^^^^^^^^^^

数据将发送到名为 $_POST

的数组中的 PHP 脚本

如果输入字段被称为 csv,如

<input type="text" name="csv" value="" />
// ----------------^^^^^^^^^^

那么 $_POST 中应该有一个事件叫做 csv

$file = fopen($_POST['csv'], 'r');

尽管您应该在使用前检查数据是否实际发送

if ( isset($_POST['csv'] ) {

    $file = fopen($_POST['csv'], 'r');

    // other code

}