无法写入PHP中的文件
问题描述:
我想写一个简单的文本到一个PHP文件。 代码的卡扣低于:无法写入PHP中的文件
$a = $_GET["option"];
$a = (string)$a;
$b = $_GET["ip_address"];
$myfile = fopen("newfile.txt", "w");
fwrite($myfile,$a);
fwrite($myfile,$b);
echo $a;
echo $b;
当我通过终端,其空打开该文件。但是php代码中的回显命令按预期显示输出。
程序执行完毕后文件是否应该保留内容? 我使用的语法从here
编辑: 新文件是由PHP创建的,但它没有写权限。我改变了它。它现在
答
$a = $_GET["option"];
$a = (string)$a;
$b = $_GET["ip_address"];
$myfile = fopen("newfile.txt", "w");
fwrite($myfile,$a);
fwrite($myfile,$b);
fclose($myfile);
echo $a;
echo $b;
试试这一次,因为你并没有关闭连接,从而输出没有得到保存
+5
请解释(对于OP和未来的用户)你在这里做什么,而不是发布一个只有代码的答案。 –
答
使用fclose($myfile);
关闭该文件,并检查文件/文件夹的权限,其中你正在写作。
答
你应该必须关闭连接。请阅读本手册fclose manual
$myfile = fopen("newfile.txt", "w");
fwrite($myfile,"some text");
fwrite($myfile,"another text");
fclose($myfile);
echo $a;
echo $b;
答
虽然其他的答案说,你必须使用fclose
不解决您的问题,这是偶然的。实际的问题是当你使用fwrite
输出是缓冲 - 它存储在内存中,但尚未提交到文件系统。为了将这个输出提交到你的文件,你应该使用fflush($myfile)
(fflush documentation);您可以在关闭文件句柄之前多次执行此操作。请记住,您应始终使用fclose
关闭文件句柄,以确保正确清理资源。
您需要在使用后关闭文件。使用fclose()来做到这一点 –
在你的情况,我会建议使用'file_put_contents()'而不是'fopen()',因为你想写入然后追加数据。 –