2011-02-06 14 views
4

私は1つの文字列をファイルに書き込むのに苦労してきました。 (まだ作成されていない場合)PHPのファイルへの書き込み - 空ですか?

$fp = fopen('/my/absolute/path/data.txt', 'w'); 
fwrite($fp, 'just a testing string...'); 
fclose($fp); 

ファイルが作成されますが、それは空です: 私はSlackwareの13の下で、単純なコードを使用しています! このファイルが書き込まれるディレクトリは、Apacheのユーザ&グループ(daemon.daemon)が所有し、0777のアクセス許可を持っています。 これまでにこれまで私に起こったことはありません。私はファイルの中に書き込めない理由が何か不思議です。

ありがとうございます。

+2

Apacheログを確認してください –

+0

コード自体は間違いありません。 – Raffael

+3

Try * $ df -h * :-) –

答えて

6

は、それはおそらくあなたのディスクがいっぱいであることを意味し$ df -h

を試してみてください。

+1

驚くばかりのキャッチ、苦い経験から私は推測する? :) –

+0

@AmigableClarkKant、:) –

2

は、私の意見では、戻り値をチェックすることができ:

$fp = fopen('/my/absolute/path/data.txt', 'w'); 

// $fp -> manual: "Returns a file pointer resource on success, or FALSE on error." 
if ($fp) { 
    $bytes_written = fwrite($fp, 'just a testing string...'); 

    if ($bytes_written) { 
     echo "$bytes_written bytes written!\n"; 
    } else { 
     echo "Error while writing!\n" 
    } 

    $success = fclose($fp); 

    if ($success) { 
     echo "File successfully closed!\n"; 
    } else { 
     echo "Error on closing!\n"; 
    } 
} else { 
    echo "No filepointer ressource!\n"; 
} 
1

は、ファイルが閉じられる前に、何かがスクリプト/ファイルに何が起こっているのだろう。ファイルにアクセスしようとする他のプロセスがあるかどうかを確認します(lsofを使用できます)。同じことが起きたかどうかを調べるために新しいファイルに書き込んでみてください。

また、fclose()の戻り値をチェックして、ファイルが正常に閉じられていることを確認してください。

関連する問題