我首先要说的是我对所有HTML / CSS / PHP都很新,但特别是PHP。我有一个页面,index.php,它只是页面的一些基本HTML,但我需要PHP脚本来将一些文件中的数据读入HTML表格。
<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>
中的其余呼叫绝对没有。这两个版本的代码都不打印任何内容,只是一个空白表。第一种方法是使用一个包含每一行的数组并调用这些行,第二种方法是使用fgets()
函数将1行读入<td></td>
并且指针自动移动到下一行。无论哪种方式都应该完成逐行读取文件的工作,但我不明白是什么让我在这里绊倒。再说一遍,我对PHP很新,所以这可能是一个非常新手的错误,如果是这样,我提前道歉。
答案 0 :(得分:0)
那是因为打开php标签和echo之间没有空格。试试这个:
<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>