使用 PHP 将文件读入 table
Reading file into table using PHP
首先我要说的是,我对所有人 HTML/CSS/PHP 都是新手,尤其是 PHP。我有一个页面 index.php,它只是该页面的一些基本 HTML,但我需要 PHP 来让脚本将数据从几个文件读取到 HTML table。
<table id="table">
<?php
$names = fopen("names.txt", "r") or die("Error, unable to open name file!");
$costs = fopen("cost.txt", "r") or die("Error, unable to open cost file!");
$name = file("names.txt");
echo $name[0];
?>
<tr>
<td><?phpecho ($name[0]); echo fgets($costs);?></td>
<td><?phpecho ($name[1]); echo fgets($costs);?></td>
<td><?phpecho ($name[2]); echo fgets($costs);?></td>
<td><?phpecho ($name[3]); echo fgets($costs);?></td>
<td><?phpecho ($name[4]); echo fgets($costs);?></td>
<td><?phpecho ($name[5]); echo fgets($costs);?></td>
<td><?phpecho ($name[6]); echo fgets($costs);?></td>
<td><?phpecho ($name[7]); echo fgets($costs);?></td>
<td><?phpecho ($name[8]); echo fgets($costs);?></td>
<td><?phpecho ($name[9]); echo fgets($costs);?></td>
<td><?phpecho ($name[10]); echo fgets($costs);?></td>
<td><?phpecho ($name[11]); echo fgets($costs);?></td>
</tr>
在我的这段代码中,echo $name[0];
只是为了测试它是否有效,而那部分确实有效,它打印出文件的第一行。但是 <td></td>
中的其余调用绝对没有任何作用。这两个版本的代码都没有打印任何内容,只是一个空白 table。第一种方法是使用一个包含每一行的数组并调用这些行,第二种方法是使用 fgets()
函数将 1 行读入 <td></td>
并且指针自动移动到下一行。无论哪种方式都应该完成逐行读取文件的工作,但我不明白是什么让我绊倒了。同样,我对 PHP 很陌生,所以这可能是一个非常新手的错误,如果是这样,我提前道歉。
那是因为在开始 php 标签和 echo 之间没有 space。试试这个:
<tr>
<td><?php echo ($name[0]); echo fgets($costs);?></td>
<td><?php echo ($name[1]); echo fgets($costs);?></td>
<td><?php echo ($name[2]); echo fgets($costs);?></td>
<td><?php echo ($name[3]); echo fgets($costs);?></td>
<td><?php echo ($name[4]); echo fgets($costs);?></td>
<td><?php echo ($name[5]); echo fgets($costs);?></td>
<td><?php echo ($name[6]); echo fgets($costs);?></td>
<td><?php echo ($name[7]); echo fgets($costs);?></td>
<td><?php echo ($name[8]); echo fgets($costs);?></td>
<td><?php echo ($name[9]); echo fgets($costs);?></td>
<td><?php echo ($name[10]); echo fgets($costs);?></td>
<td><?php echo ($name[11]); echo fgets($costs);?></td>
</tr>
首先我要说的是,我对所有人 HTML/CSS/PHP 都是新手,尤其是 PHP。我有一个页面 index.php,它只是该页面的一些基本 HTML,但我需要 PHP 来让脚本将数据从几个文件读取到 HTML table。
<table id="table">
<?php
$names = fopen("names.txt", "r") or die("Error, unable to open name file!");
$costs = fopen("cost.txt", "r") or die("Error, unable to open cost file!");
$name = file("names.txt");
echo $name[0];
?>
<tr>
<td><?phpecho ($name[0]); echo fgets($costs);?></td>
<td><?phpecho ($name[1]); echo fgets($costs);?></td>
<td><?phpecho ($name[2]); echo fgets($costs);?></td>
<td><?phpecho ($name[3]); echo fgets($costs);?></td>
<td><?phpecho ($name[4]); echo fgets($costs);?></td>
<td><?phpecho ($name[5]); echo fgets($costs);?></td>
<td><?phpecho ($name[6]); echo fgets($costs);?></td>
<td><?phpecho ($name[7]); echo fgets($costs);?></td>
<td><?phpecho ($name[8]); echo fgets($costs);?></td>
<td><?phpecho ($name[9]); echo fgets($costs);?></td>
<td><?phpecho ($name[10]); echo fgets($costs);?></td>
<td><?phpecho ($name[11]); echo fgets($costs);?></td>
</tr>
在我的这段代码中,echo $name[0];
只是为了测试它是否有效,而那部分确实有效,它打印出文件的第一行。但是 <td></td>
中的其余调用绝对没有任何作用。这两个版本的代码都没有打印任何内容,只是一个空白 table。第一种方法是使用一个包含每一行的数组并调用这些行,第二种方法是使用 fgets()
函数将 1 行读入 <td></td>
并且指针自动移动到下一行。无论哪种方式都应该完成逐行读取文件的工作,但我不明白是什么让我绊倒了。同样,我对 PHP 很陌生,所以这可能是一个非常新手的错误,如果是这样,我提前道歉。
那是因为在开始 php 标签和 echo 之间没有 space。试试这个:
<tr>
<td><?php echo ($name[0]); echo fgets($costs);?></td>
<td><?php echo ($name[1]); echo fgets($costs);?></td>
<td><?php echo ($name[2]); echo fgets($costs);?></td>
<td><?php echo ($name[3]); echo fgets($costs);?></td>
<td><?php echo ($name[4]); echo fgets($costs);?></td>
<td><?php echo ($name[5]); echo fgets($costs);?></td>
<td><?php echo ($name[6]); echo fgets($costs);?></td>
<td><?php echo ($name[7]); echo fgets($costs);?></td>
<td><?php echo ($name[8]); echo fgets($costs);?></td>
<td><?php echo ($name[9]); echo fgets($costs);?></td>
<td><?php echo ($name[10]); echo fgets($costs);?></td>
<td><?php echo ($name[11]); echo fgets($costs);?></td>
</tr>