【问题标题】:How can I create static HTML table-files from a CSV file for each row with PHP?如何使用 PHP 从 CSV 文件为每一行创建静态 HTML 表格文件?
【发布时间】:2015-08-07 19:06:42
【问题描述】:

我想自动创建静态 HTML 站点,每个站点都有一个表。这样做的全部目的是建立一个包含基本元数据(大约 4000 个数据集)的小型图书馆收藏。 我在文本文件 (CSV) 中获取数据,分号分隔。 现在对于 CSV 文件中的每一行,我想创建一个表格,格式如下:

<table>
<tr>
<td >Title:</td><td>A Game of Thrones</td> 
</tr>
<tr>
<td >Author:</td><td>Martin, George R.R.</td>
</tr>
<tr>
<td >Published:</td><td>New York : Bantam Books</td> 
</tr>
<tr>
<td >Year:</td><td>1996</td>
</tr>
</table>

因此,将行中的每个字段分配给第一个 td 中的“字段名称”非常重要。 此外,我想在本地将表格保存在 HTML 文件中。 我试图以某种方式打印回声,但似乎不可能(我猜是因为回声不像变量那样工作)。 另外,我知道从 MYSQL 中提取数据的动态脚本可能会更容易,但由于某些原因,静态 HTML 站点更适合我的需要。 我找到了这个例子:

<?php
$row = 1;
if (($handle = fopen("10Titel_Semi.txt", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
    $num = count($data);
    echo "<p> $num Felder in Zeile $row: <br /></p>\n";
    $row++;
    for ($c=0; $c < $num; $c++) {
        echo $data[$c] . "<br />\n";
    }
}
fclose($handle);
}
?>

但它只是直接写入所有信息。 所以它必须是某种循环为每一行工作,然后给出一个 HTML 文件(文件名将是每一行的 ID)。我对数组和 foreach 循环进行了很多尝试,但还没有得到所有的机制。 这是可能的,还是有人有更好的主意? 由于我对 PHP 完全陌生,而且对一般编程也几乎陌生,因此我将不胜感激。代码不需要优雅或什么,我只需要它工作。

编辑:我想过这样的事情:

<tr>
<td>Author:</td><td>$data[1]</td>
</tr>
<tr>
<td>Published</td><td>$data[2]</td> 
</tr>
<tr>
<td>Year:</td><td>$data[3]</td>
</tr>
<tr> 

我将每行/行的数组作为变量放在 HTML 表中... 希望这有助于理解我的问题。

【问题讨论】:

    标签: php html html-table import-from-csv


    【解决方案1】:

    如果您在该代码中的行和列上循环,您应该执行以下操作:

    <table>
    <tr>
    <td >Title:</td><td>A Game of Thrones</td> 
    </tr>
    <tr>
    <td >Author:</td><td>Martin, George R.R.</td>
    </tr>
    <tr>
    <td >Published:</td><td>New York : Bantam Books</td> 
    </tr>
    <tr>
    <td >Year:</td><td>1996</td>
    </tr>
    
    <?php
    $row = 1;
    if (($handle = fopen("10Titel_Semi.txt", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
        $num = count($data);
        echo "<tr>";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo "<td>" . $data[$c] . "</td>";
        }
        echo "</tr>";
    }
    fclose($handle);
    }
    ?>
    
    </table>
    

    【讨论】:

    • 谢谢,这可以遍历行,但我需要将每个字段分配给它的字段名(标题、作者等)。它不应该是带有标题行的普通表格,而是带有字段名的列和带有字段本身的列。像这样:标题:权力的游戏作者:马丁,乔治 R.R. 出版:纽约:矮脚鸡图书年:1996
    猜你喜欢
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-02
    • 2012-06-09
    • 1970-01-01
    • 2023-01-20
    • 2017-11-01
    相关资源
    最近更新 更多