function readWrite() {
$fileReader = fopen('file.txt', 'r') or die("ERROR: File not found");
$fileWriter = fopen('filewr.txt', 'w') or die ("ERROR: Write File not
found");
$totalDaysArr= array();
$monthNumArr= array();
$monthArr= array();
$row= file("file.txt");
while($row = fgets($fileReader, 4096)) {
list($monthNumArr[], $monthArr[], $totalDaysArr[]) = explode(",", $row);
}
for($x = 11; $x >= 0; $x--)
{
$table = explode(",", $monthNumArr[$x]);
fwrite($fileWriter, $row[$x]);
}
fclose($fileWriter);
}
我是PHP的初学者,所以这就是我到目前为止所做的。我的目标是创建一个函数,它将读取一个名为file.txt的文件,然后使用数组反向写入。我不确定我在这里做错了什么。
这些是要求:
此函数应使用PHP数组存储记录(每行都是“记录”)。
此函数应使用PHP循环遍历月份名称数组并生成HTML5 / CSS以显示表格。
创建一个写入文本文件filewr.txt(反向顺序)的函数。
此函数应使用PHP for循环以相反的顺序遍历数组,并将每个数组条目(行/记录)写入filewr.txt文件。
并且txt文件如下所示:
1,January,31
2,February,28
3,March,31
4,April,30
5,May,31
6,June,30
7,July,31
8,August,31
9,September,30
10,October,31
11,November,30
12,December,31
答案 0 :(得分:-1)
fileReader
阅读数据时使用file("file.txt");
?fwrite($fileWriter, $row[$x])
很可能是错误来自的地方:你不打算将该表写入文件而不是原始输入文件中的一行吗? <强>加成强>
@Aureliux:
你想要的是生成一个HTML字符串。
因此,让我们从$table='<table>'
开始,并将此定义放在循环之前。
在循环之后添加表格结束标记:$table.='</table>'
魔术发生在两者之间:
对于每条记录,您可以创建相应的HTML表示。
$table.='<tr><td>'.$monthNumArr.'</td><td>'.$monthArr.'</td><td>'.$totalDaysArr.'</td></tr>'
。
最后,在循环之后移动write命令,并将生成的Table Markup写入输出文件。
你最终会看到什么
function readWrite() {
$fileWriter = fopen('filewr.txt', 'w') or die ("ERROR: Write File not
found");
$totalDaysArr= array();
$monthNumArr= array();
$monthArr= array();
$row= file("file.txt");
while($row = fgets($fileReader, 4096)) {
list($monthNumArr[], $monthArr[], $totalDaysArr[]) = explode(",", $row);
}
$table='<table>';
for($x = 11; $x >= 0; $x--)
{
$table.='<tr><td>'.$monthNumArr.'</td><td>'.$monthArr.'</td><td>'.$totalDaysArr.'</td></tr>';
}
$table.='</table>';
fwrite($fileWriter, $table);
fclose($fileWriter);
}
我不知道为什么你需要反向循环,但实际上,你可以用更少的努力获得相同的结果:
function readWrite() {
$row= file("file.txt");
$table='<table>';
for($x = 11; $x >= 0; $x--)
{
$table.='<tr><td>'.implode('</td><td>', explode(',',$row[$x])).'</td></tr>';
}
$table.='</table>';
file_put_contents('file.txt', $table);
}
我没有测试它。但这个想法应该是明确的。 就个人而言,我同意@Alive to Die。他的方法是最直接的。