如何使用PHP和Fopen打开CSV-fil

时间:2018-12-03 19:01:18

标签: php 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');

1 个答案:

答案 0 :(得分:1)

那样使用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

}