如何使用 PHP 读取 CSV 文件并在 Table/DIV 中显示内容?
Posted
技术标签:
【中文标题】如何使用 PHP 读取 CSV 文件并在 Table/DIV 中显示内容?【英文标题】:How to read a CSV file using PHP and display content in Table/DIV? 【发布时间】:2012-12-05 13:52:38 【问题描述】:我正在使用以下 php 代码读取包含两列(例如 x、y)的 CSV 文件并在表格中显示内容:
<?Php
echo "<html><body><table border=1>\n\n";
$f = fopen("data2.csv", "r");
while (($line = fgetcsv($f)) !== false)
echo "<tr>";
foreach ($line as $cell)
echo "<td>" . htmlspecialchars($cell) . "</td>";
echo "<tr>\n";
fclose($f);
echo "\n</table></body></html>";
?>
但是,我现在正在使用一个新表格(见下文),我想用它来显示包含 1/2/3/4 等的单元格中的 A 列和包含 5/6/7/ 的单元格中的列 B 8.
我该怎么做?
<table style="text-align: left; width: 406px; height: 200px;"
border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td ></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td ></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td colspan="4" rowspan="1">1</td>
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td colspan="3" rowspan="1">5</td>
</tr>
<tr>
<td></td>
<td colspan="4" rowspan="1">2</td>
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td colspan="3" rowspan="1">6</td>
</tr>
<tr>
<td></td>
<td colspan="4" rowspan="1">3</td>
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td colspan="3" rowspan="1">7</td>
</tr>
<tr>
<td></td>
<td colspan="4" rowspan="1">4</td>
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td colspan="3" rowspan="1">8</td>
</tr>
</tbody>
</table>
【问题讨论】:
表格的前五行是什么? 直到这部分csv 是逗号分隔值。所以它是一个可以使用 file() 查看和访问的基本文本文件,你可以使用 "\n\r" 或 "\n"
<?php
$data = file("all.csv");
echo $dataintext = implode("\n",$data);
?>
脚本从这里开始 tester()
function tester()
$.post("read.php",action:'login',function(data)
$("#textarea").val(data);
);
html 从这里开始
<body>
<a href="javascript:tester();">read</a>
<textarea id="textarea" ></textarea>
</body>
【讨论】:
【参考方案2】:使用“fread($f, filesize(filename.kit)”代替 fgetcsv。
<?Php
echo "<html><body><table border=1>";
$f = fopen("data2.csv", "r");
$fr = fread($f, filesize("data2.csv"));
fclose($f);
$lines = array();
$lines = explode("\n\r",$fr); // IMPORTANT the delimiter here just the "new line" \r\n, use what u need instead of...
for($i=0;$i<count($lines);$i++)
echo "<tr>";
$cells = array();
$cells = explode(";",$lines[$i]); // use the cell/row delimiter what u need!
for($k=0;$k<count($cells);$k++)
echo "<td>".$cells[$k]."</td>";
// for k end
echo "</tr>";
// for i end
echo "</table></body></html>";
?>
【讨论】:
以上是关于如何使用 PHP 读取 CSV 文件并在 Table/DIV 中显示内容?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Python 在 myBucket 中上传 CSV 文件并在 S3 AWS 中读取文件
Visual Basic 如何读取 CSV 文件并在数据网格中显示值?