从文本文件中读取数据并使用PHP将其显示在表中

时间:2014-02-16 12:40:54

标签: php html-table text-files

我有文本文件,我想阅读到一个网站,然后显示。我用

$sListText = file_get_contents("result - 0001.txt");
echo nl2br($sListText);

使用换行符加载它。我只是不知道如何将表格数据转换成表格。

文本文件如下所示:

Prestige Byeenkoms 2014 Dal Josafat Stadion,    10/02/2014

Item: 1 (Dogters - 14) Spiesgooi 500 gm

Pos Naam    Van Span    Uitslag Punt    ASA Rek
1   Marle   Rademan GHBH    35.67   8   879 R
2   Lara    Jordaan GHBH    25.58   5   671 
3   Martine Hartung PG  24.67   4   650 
4   Marlie  Theunissen  PG  23.50   3   622 
5   Rochelle    ROOS    BLRO    21.75   2   578 
6   Mishka  ELLIS   BLRO    21.20   1   564 

顶部的前两行是标题。下面的数据必须形成一个没有边框的表。

有人可以帮忙吗?


更新

我尝试了以下内容并且效果很好:

echo "<html><body><table>\n\n";
$f = fopen("0001.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>";

是否可以跳过csv文件的前两行,或者更好的是,将它们与从第三行开始的表数据分开?

1 个答案:

答案 0 :(得分:2)

您需要阅读表格,以便循环播放。

当表开始时,您需要编写一些代码来计算。您可以循环遍历每一行,直到看到“Pos”(因为这是您的表头)。

关于文件顶部的两行标题,您需要弄清楚如何提取这些标题并将其标记。请参阅fgets()的php手册,以便您阅读每一行。然后,您可以explode()随意使用它们。

这是一种方法......

<table>
<?php

// open the file
if (($handle = fopen("result - 0001.txt", "r")) !== false) {

    // TODO: use fgets() to find the row..


    // loop through each row
    while (($data = fgetcsv($handle, 0, "\t")) !== false) {

        echo "<tr>";

        for ($c = 0; $c < $num; $c++) 
        {
            echo "<td>" . $data[$c] . "</td>";
        }

        echo "</tr>";

    }

    // close file
    fclose($handle);
}
?>
</table>