2017-06-13 88 views
1

我想写一个简单的文本到一个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创建的,但它没有写权限。我改变了它。它现在

+0

您需要在使用后关闭文件。使用fclose()来做到这一点 –

+0

在你的情况,我会建议使用'file_put_contents()'而不是'fopen()',因为你想写入然后追加数据。 –

回答

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; 

试试这一次,因为你并没有关闭连接,从而输出没有得到保存

+5

请解释(对于OP和未来的用户)你在这里做什么,而不是发布一个只有代码的答案。 –

1

使用fclose($myfile);关闭该文件,并检查文件/文件夹的权限,其中你正在写作。

0

你应该必须关闭连接。请阅读本手册fclose manual

$myfile = fopen("newfile.txt", "w"); 
fwrite($myfile,"some text"); 
fwrite($myfile,"another text"); 
fclose($myfile); 
echo $a; 
echo $b; 
0

虽然其他的答案说,你必须使用fclose不解决您的问题,这是偶然的。实际的问题是当你使用fwrite输出是缓冲 - 它存储在内存中,但尚未提交到文件系统。为了将这个输出提交到你的文件,你应该使用fflush($myfile)fflush documentation);您可以在关闭文件句柄之前多次执行此操作。请记住,您应始终使用fclose关闭文件句柄,以确保正确清理资源。