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文档中有关于不同模式的详细信息
如果您想查看我测试的代码和自己的测试结果,请看我在我这方面测试的两个屏幕截图: