2012-10-05 24 views
5

fopen documentationによれば、いくつかのモードではファイルが存在しない場合は作成されますが、私の状況ではすべて 'w'、 'w +'、 'x 'と' x + 'モードを使用していますが、私に警告を出すだけで、ファイルを作成することはできません。PHP fopen()はファイルを作成しません

それは私のコードです:

$this->handle = fopen($this->log_name, 'w'); 

と私は何を得る:

Warning: fopen(D:\xampp\htdocs\farid\logs\error.php) [function.fopen]: failed to open stream: No such file or directory in D:\xampp\htdocs\farid\libraries\error\log.php on line 34 
Warning: fwrite() expects parameter 1 to be resource, boolean given in D:\xampp\htdocs\farid\libraries\error\log.php on line 66 
Warning: fclose() expects parameter 1 to be resource, boolean given in D:\xampp\htdocs\farid\libraries\error\log.php on line 27 

そして私は、Windows環境で働いています。

+2

これらのディレクトリは存在しますか? – aynber

+2

ファイルのパーミッションは最も明白な疑いです –

+1

同じドキュメンテーションから - "PHPがfilenameがローカルファイルを指定していると判断した場合、そのファイルでストリームを開こうとします。安全なモードを有効にしている場合、またはopen_basedirにさらに制限が適用される可能性があります。 –

答えて

9

ログファイルへのパスが存在するかどうかをチェックして、ディレクトリではなくファイルを作成します。

また、xamppを実行しているユーザーが、指定したフォルダにアクセスできるかどうかを確認します。

+0

ご協力ありがとうございます、私のディレクトリ名に間違いがありました。今はファイルを作成しています。それは私のfuunctionに存在しなかった場合、私はさらにフォルダを作成する方法はありますか? –

+1

http://php.net/manual/en/function.mkdir.phpをチェックしてください。引数セクションを確認して "再帰的"にしてください。まず、ファイルが存在するかどうかを確認しなければなりません。 'realpath'と' file_exists'役に立つ –

関連する問題