2017-06-13 6 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コードのechoコマンドは期待どおりの出力を表示します。

ファイルの内容がプログラムの実行終了後に保持されますか? 構文を使用していますhere

EDIT: 新しいファイルはPHPによって作成されますが、書き込み権限はありません。私はそれを変えた。これは、ファイルを閉じて、内のファイル/フォルダのパーミッションをチェックするためにfclose($myfile);を使用するため、出力が

+0

ファイルを使用した後でファイルを閉じる必要があります。 fclose()を使用してください –

+0

あなたの場合は、データを書き込んだ後に追加したいので、 'fopen()'の代わりに 'file_put_contents()'を使うことをお勧めします。 –

答えて

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

を保存していませんでした、あなたが接続を閉じるていなかったとして、一度これを試して、今

0

接続を閉じる必要があります。他の回答は、あなたが、これは偶発的である、あなたの問題を解決するのですfcloseを使用しなければならないと言ってますが、このマニュアルfclose manual

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

をお読みください。実際の問題は、fwriteを使用したときに出力がにバッファされた - メモリに保存されていますが、まだファイルシステムにコミットされていません。この出力をファイルにコミットするには、fflush($myfile)fflush documentation)を使用する必要があります。ファイルハンドルを閉じる前にこれを何度も行うことができます。リソースが正しくクリーンアップされるようにするには、ファイルハンドルを常にfcloseでクローズするようにしてください。

関連する問題