php读写文件

php读写文件,php,function,Php,Function,我是PHP的初学者,所以这就是我目前所掌握的。我的目标是创建一个函数,该函数将读取一个名为file.txt的文件,然后使用数组反向写入该文件。我不确定我在这里做错了什么 这些是要求: 这个函数应该使用PHP数组来存储记录(每一行都是“记录”) 这个函数应该使用PHP循环遍历months names数组并生成HTML5/CSS来显示表 创建一个函数,用于写入文本文件filewr.txt(逆序) 此函数应使用PHP for循环以相反顺序遍历数组,并将每个数组条目(行/记录)写入filewr.txt文

我是PHP的初学者,所以这就是我目前所掌握的。我的目标是创建一个函数,该函数将读取一个名为file.txt的文件,然后使用数组反向写入该文件。我不确定我在这里做错了什么

这些是要求:

这个函数应该使用PHP数组来存储记录(每一行都是“记录”)

这个函数应该使用PHP循环遍历months names数组并生成HTML5/CSS来显示表

创建一个函数,用于写入文本文件filewr.txt(逆序)

此函数应使用PHP for循环以相反顺序遍历数组,并将每个数组条目(行/记录)写入filewr.txt文件

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])
    很可能是错误的来源:您不打算将该表写入文件而不是原始输入文件中的一行吗
  • 添加

    @奥雷利乌斯: 您想要的是生成一个HTML字符串。 因此,让我们从
    $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);
    }