如何使用PHP为每行的CSV文件创建静态HTML表格文件?

时间:2015-05-26 08:07:46

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

我想自动创建静态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>

因此,将该行中的每个字段分配到其&#34; fieldname&#34;这一点非常重要。在第一个td&#39; s。 另外,我想在HTML文件中本地保存表。 我尝试以某种方式打印回声,但它似乎不可能(我猜因为回声不像变量那样工作)。 另外,我知道从M​​YSQL中提取数据的动态脚本可能会更容易,但出于某些原因,静态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表中的变量放出... 希望这有助于理解我的问题。

1 个答案:

答案 0 :(得分:0)

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

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
  <thead>
    <th>Name</th>
    <th>Address</th>
    <th>Phone</th>
  </thead>
  <tbody>
    <tr data-id="1">
      <td>Jason</td>
      <td>USA</td>
      <td>Not specified</td>
    </tr>
    <tr data-id="2">
      <td>Micheal</td>
      <td>USA</td>
      <td>Not specified</td>
    </tr>
    <tr data-id="3">
      <td>Jason</td>
      <td>Thailand</td>
      <td>222-222</td>
    </tr>
  </tbody>
</table>