Php file\u get\u内容回显某些内容,但fgets返回false

Php file\u get\u内容回显某些内容,但fgets返回false,php,html,forms,file,echo,Php,Html,Forms,File,Echo,这是我的代码: <?php extract ($_POST); $fh = fopen ("./s.txt", "a"); echo file_get_contents( "./s.txt" ); if(($line = fgets($fh)) !== false) {} echo($line); f

这是我的代码:

<?php
                extract ($_POST);
                $fh = fopen ("./s.txt", "a");
                echo file_get_contents( "./s.txt" );
                if(($line = fgets($fh)) !== false) {}
                echo($line);
                file_put_contents("./signup.txt", "");

                if($line!=false && $line!='') {
                        echo '<script language="javascript">';echo 'alert($line)';echo '</script>';
                        fwrite ($fh, "$line \n");
                        $n = $line;
                }
                else {
                        fwrite ($fh, "$_POST[n] \n");
                        $n = $_POST[n];
                }
                fclose ($fh);

  $script = $_SERVER['PHP_SELF'];
  print <<<TOP
  <html>
  <body>
  <form method = "post" action = "$script">
  <table border = "1">
        <tr>
          <td> Name</td>
          <td> <input type = "text" value = "$n" name = "n" size = "30" /></td>
        </tr>

TOP;
  print <<<BOTTOM
  <tr><td><input type = "submit" name = "order" value = "Submit Order" /></td></tr>
  </table></form></body></html>
BOTTOM;
?>

虽然在php.net中似乎没有明确/清晰地记录这一点(我将在下面提供相关文档的链接),但在我这方面刚刚运行了一个测试,我发现如果在使用
'a'
作为
fopen()
中的模式的文件资源上运行
fgets()
,则总会返回false

我想这是“a”模式打开文件仅用于写入的副作用。运行完全相同的测试,使用“a+”(打开文件进行写入和读取)作为模式,同时具有
fgets()
file\u get\u contents()
输出“word”。fopen文档中有关于不同模式的详细信息

如果您想查看我测试的代码和自己的测试结果,请看我在我这方面测试的两个屏幕截图: