我有一个测试脚本,它生成包含答案的 txt 文件。并有 2 个包含正确答案的 txt 文件。我想: 1) 将所有文件合并到一张表中,例如:
<table>
<tr>
<td>№ of question</td>
<td>data from file 1</td>
<td>data from file 2</td>
<td>data from file 3</td>
</tr>
...
</table>
2) 我想用来自 DB (MySQL) 的文本替换此文件中的 id。我有一个包含类似 ID 的问题和答案的表格(比如在 txt 文件中)。
所有文件的结构如下:
1|3
2|4
3|1
其中第一个数字 - 是问题的 ID,第二个是答案的变体。
我开始编码,但不知道如何从文件中包含数据:
// Slect from DB
$qsel=mysql_query("SELECT `qid`, `qtext` from `questions` ORDER BY `qid`");
// Open file 1
$key1=fopen("data/test_1_key1.txt", "r");
$k1=explode("/r/n", $key1);
// Open file 2
$key2=fopen("data/test_1_key2.txt", "r");
$k2=explode("/r/n", $key2);
$rtable='<table border="1" cellspacing="0" cellpadding="3">
<tr>
<th width="40%">Q</th>
<th width="20%">A 1</th>
<th width="20%">A 2</th>
<th width="20%">NAME</th>
</tr>';
while($q=mysql_fetch_row($qsel))
{
$rtable.='<tr><td><b>'.$q['1'].'</b></td>';
$rtable.='<td>data from file 1</td>';
$rtable.='<td>data from file 2</td>';
$rtable.='<td></td>';
}
echo '</table>'.$rtable;
最佳答案
我会先获取文本文件并将其转换为索引数组:
$tmp1 = file('text1.txt');
$data1 = array();
foeach($tmp1 as $line)
{
list($key1, $val1) = explode("|", $line);
$data1[$key1] = $val1;
}
然后,在 mysql 获取循环中,只使用索引数组:
while($q=mysql_fetch_row($qsel))
{
$rtable.='<tr><td><b>'.$q['1'].'</b></td>';
$rtable.='<td>' . ( isset( $data1[ $q['0'] ] ) ? $data1[ $q['0'] ] : '' ) . '</td>';
$rtable.='<td>data from file 2</td>';
$rtable.='<td></td>';
}
关于php - 如何将 3 个文件合并到一张表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7954270/