php读写文件
我是PHP的初学者,所以这就是我目前所掌握的。我的目标是创建一个函数,该函数将读取一个名为file.txt的文件,然后使用数组反向写入该文件。我不确定我在这里做错了什么 这些是要求: 这个函数应该使用PHP数组来存储记录(每一行都是“记录”) 这个函数应该使用PHP循环遍历months names数组并生成HTML5/CSS来显示表 创建一个函数,用于写入文本文件filewr.txt(逆序) 此函数应使用PHP for循环以相反顺序遍历数组,并将每个数组条目(行/记录)写入filewr.txt文件 txt文件也如下所示:php读写文件,php,function,Php,Function,我是PHP的初学者,所以这就是我目前所掌握的。我的目标是创建一个函数,该函数将读取一个名为file.txt的文件,然后使用数组反向写入该文件。我不确定我在这里做错了什么 这些是要求: 这个函数应该使用PHP数组来存储记录(每一行都是“记录”) 这个函数应该使用PHP循环遍历months names数组并生成HTML5/CSS来显示表 创建一个函数,用于写入文本文件filewr.txt(逆序) 此函数应使用PHP for循环以相反顺序遍历数组,并将每个数组条目(行/记录)写入filewr.txt文
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);
}
文件(“file.txt”)读取数据时,为什么要使用fileReader
代码>最后
fwrite($fileWriter,$row[$x])
很可能是错误的来源:您不打算将该表写入文件而不是原始输入文件中的一行吗$table='
开始,将此定义放在循环之前。
在循环之后,添加tables结束标记:$table.=''
魔法发生在以下两种情况之间:
为每个记录创建相应的HTML表示。
$table.='.$monthNumArr.'.$monthharr.'.$totaldaysar.'
。
最后,将write命令移动到循环之后,并将生成的表标记写入输出文件
你最终会得到什么样的结果
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
函数readWrite(){
$fileWriter=fopen('filewr.txt','w')或die(“错误:未写入文件
发现“);
$totalDaysArr=array();
$monthNumArr=array();
$monthArr=array();
$row=文件(“file.txt”);
而($row=fgets($fileReader,4096)){
列表($monthNumArr[],$monthharr[],$totalDaysArr[])=explode(“,”,$row);
}
$table='';
对于($x=11;$x>=0;$x--)
{
$table.=''.$monthNumArr.'.$monthArr.'.$TOTALLDAYSAR.''.';
}
$table.='';
fwrite($fileWriter,$table);
fclose($fileWriter);
}
我不知道您为什么需要反向循环,但实际上,您可以用更少的努力获得相同的结果:
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);
}
函数readWrite(){
$row=文件(“file.txt”);
$table='';
对于($x=11;$x>=0;$x--)
{
$table.=''.INPODE('',explode(',',$row[$x]))';
}
$table.='';
文件内容('file.txt',$table);
}
我没有测试它。但这个想法应该很清楚。
就我个人而言,我同意“活到死”。他的方法是最直接的。您忘了提到当前代码的问题所在。如果您演示您得到的当前输出和/或遇到的任何错误,这将有助于人们更快地回答。对不起,这给了我一个错误“第56行未定义偏移”所以我的while循环有一个错误,但我不知道它引用的第56行有什么用处,因为你没有发布至少56行php,你发布的代码中哪一行对应56行?别忘了我们看不到您的整个文件,所以我们不知道。这看起来像一个CSV。如果是,为什么不使用?这个答案有什么错?我觉得它指向了正确的方向不,我同意我没有投反对票,所以我应该使用一个全新的变量而不是$row吗?
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);
}