我正在尝试在HTML表格中显示两列四行CSV文件。我有下面的代码,但它只显示第一行,我不明白为什么。
<html>
<head>
<title>test</title>
</head>
<body>
<table border=1>
<?PHP
$file_handle = fopen("oee1.csv", "r");
while (!feof($file_handle) ) {
$line_of_text = fgetcsv($file_handle, 1024);
echo '<tr><td>' . $line_of_text[0] . '</td><td>' . $line_of_text[1] . '</td></tr>';
}
fclose($file_handle);
?>
</table>
</body>
</html>
csv文件如下所示:
test1, 1
test2, 2
test3, 3
test4, 4
答案 0 :(得分:3)
你没有遍历每一行。 尝试这样的事情:
<!DOCTYPE html>
<html>
<head>
<title>+test</title>
</head>
<body>
<?php
if (($file_handle = fopen("data.csv", "r")) !== false) {
$str = '';
$str .= '<table>';
while (($data = fgetcsv($file_handle, 1024, ",")) !== false) {
$str .= '<tr>';
foreach ($data as $key => &$value) {
$str .= "<td>$value</td>";
}
$str .= '</tr>';
}
fclose($file_handle);
$str .= '</table>';
echo $str;
}
?>
</body>
</html>
输出:
<table>
<tbody>
<tr>
<td>test1</td>
<td>1</td>
</tr>
<tr>
<td>test2</td>
<td>2</td>
</tr>
<tr>
<td>test3</td>
<td>3</td>
</tr>
<tr>
<td>test4</td>
<td>4</td>
</tr>
</tbody>
</table>
PS:确保您拥有权限,并且您的csv作为您的php文件位于smae目录中。
参考:fgetcsv
答案 1 :(得分:0)
尝试在循环的每次迭代中添加对fgets($file_handle);
的调用,你必须以某种方式推进文件句柄指针。