2017-06-13 33 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關閉文件句柄,以確保正確清理資源。