2017-06-05 16 views
0

ローカルサーバー上のファイルに書き込もうとしていますが、なぜ私が何をしているのかわからない理由がわかりません。PHPがサーバー上のファイルに書き込む

file_put_contents("./lol.txt", "Contents"); 
file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/lil.txt", "Contents"); 
file_put_contents($_SERVER['DOCUMENT_ROOT'] . "lal.txt", "Contents"); 
file_put_contents("lel.txt", "Contents"); 

必要であれば、私は任意の追加情報を提供します:私がしようと試みてきた何

+0

どのようなエラーが表示されますか? –

+0

まず、 "$ _SERVER ['DOCUMENT_ROOT']。" /lil.txt ""パスをダンプし、ファイルが存在しないことを確認してください。次に、私はあなたのPHPログファイルをチェックすることをお勧めします。そのフォルダにファイルを書き込むためのファイルシステムのアクセス権を持っていますか? – VirCom

+0

file_put_contents()はfalseを返し、コンソールには出力がありませんでした。私はちょっと調べて、error_get_last()['message']を使って、 "...ストリームを開けませんでした:Permission denied"同様の問題(例:somefile.txtのアクセス権を変更するだけですが)までは、ディレクトリのパーミッション(chmod + 777 dirname)を変更する必要がありました。 @AmitGaud、私はエラーをさらにチェックするとは思わなかった。 –

答えて

1

使用のrealpath - 戻り値正規化された絶対パス名

ますfile_put_contents(のrealpath( "somedirectory/somefile.txt")、$コンテンツ);

を入力し、 の書き込み権があるかどうかフォルダとファイルのアクセス許可を確認してください。

+0

私が上記のコメントで言ったように、確かにそれは許可の問題だった、ありがとう! –

関連する問題