0

私は現在、PHPを使用してtxtファイルに書き込もうとしていますが、次の小さなスクリプトを見つけました。

<?php
$filename = 'testFile.txt';
$somecontent = "Add this to the file\n";

if (is_writable($filename)) {

    if (!$handle = fopen($filename, 'a')) {
         echo "Cannot open file ($filename)";
         exit;
    }

    if (fwrite($handle, $somecontent) === FALSE) {
        echo "Cannot write to file ($filename)";
        exit;
    }

    echo "Success, wrote ($somecontent) to file ($filename)";
    fclose($handle);

} 

else {
    echo "The file $filename is not writable";
}
?>

成功メッセージが表示されますが、ファイルに何も書き込まれません。txtファイルを削除しても、成功メッセージが表示されます

誰かがこのような状況をトラブルシューティングする方法を知っていますか?

4

2 に答える 2

2

コードは完全に正常に機能します。ただし、is_writableファイルがまだ存在しない場合、チェックは失敗することに注意してください。

Webサーバーを介して実行する場合は、キャッシュされた応答が表示されていないことを確認してください。

于 2010-05-14T09:49:13.583 に答える
2

ファイルが存在しない場合は失敗するため、最初のチェックis_writableは役に立ちません。fopen「a」パラメーターを使用すると、ファイルが存在する場合はファイルに追加され、そうでない場合は新しいファイルが作成されます。

ファイルが存在するかどうかを確認したい場合はfile_exists( http://php.net/manual/en/function.file-exists.php ) を使用できますが、実際には必要ありません。

あなたのコードでは、ファイルを削除すると、実際には「ファイルは書き込み可能ではありません」というエラーが発生するはずです...まさにそのコードを持っていますか?

それ以外の場合は、コードを試してみましたが、正常に動作します (最初の なしif)。

于 2010-05-14T10:03:15.720 に答える