我正在尝试将简单文本写入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代码中的echo命令按预期显示输出。
程序执行完毕后文件是否应保留内容? 我使用here
中的语法编辑: 新文件由PHP创建,但它没有写入权限。我改变了它现在有效
答案 0 :(得分:3)
$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;
尝试一次,因为你没有关闭连接,因此输出没有被存储
答案 1 :(得分:1)
使用fclose($myfile);
关闭文件并检查您正在编写的文件/文件夹的权限。
答案 2 :(得分:0)
你应该关闭连接。请阅读本手册fclose manual
$myfile = fopen("newfile.txt", "w");
fwrite($myfile,"some text");
fwrite($myfile,"another text");
fclose($myfile);
echo $a;
echo $b;
答案 3 :(得分:0)
虽然其他答案说你必须使用fclose
来解决你的问题,但这是偶然的。实际问题是当您使用fwrite
输出缓冲时 - 它存储在内存中但尚未提交到文件系统。要将此输出提交到您的文件,您应该使用fflush($myfile)
(fflush documentation);在关闭文件句柄之前,您可以多次执行此操作。请记住,您应始终使用fclose
关闭文件句柄,以确保正确清理资源。