我在PHP中测试文件创建。我正在使用一个带有HTML表单的comment.php文件,并指向实际完成所有工作的list.php文件。
这就是我在list.php上的内容:
define(ARCHIVO, 'comentarios.txt');
if (!empty($_POST['nombre']) && !empty($_POST['comentario'])){
$nombre=$_POST['nombre'];
$comentario=$_POST['comentario'];
$fp=fopen(ARCHIVO, 'a');
rewind($fp);
fwrite($fp, '<strong>Nombre: </strong>'.$nombre."<br>\r\n".
'<strong>Comentario: </strong>'.$comentario."<br>\r\n".
'<strong>Fecha: </strong>'.
date("d-m-Y")."<br>\r\n<hr>"
);
fclose($fp);
}
$fp=fopen(ARCHIVO, 'r');
fpassthru($fp);
fclose($fp);
现在,我的代码一个接一个地添加了所有注释,我想反过来说:顶部的最新版本。所以我在这段代码中添加了rewind($fp);
行,希望在添加更多内容之前将文件指针返回到txt文件的开头。
它不起作用,我的意思是,它仍然将新内容粘贴在底部而不是顶部。
我做错了什么?
答案 0 :(得分:4)
答案 1 :(得分:0)
fopen(ARCHIVO, 'a');
因为您尝试使用&#39; a&#39;打开文件, 如果你想写一些文件的开头,你应该使用&#39; w&#39;,&#39; w +&#39;,&#39; r +&#39;,&#39; x&#39 ;,&#39; x +&#39;
在这种情况下,你可以试试&#39; r +&#39;但你不会添加,将替换文件的开头
如果您没有记忆问题,可以使用&#39; w&#39;
像:
fwrite($fp, "Things you like to add beggining of file ++ ".file_get_contents(ARCHIVO));