2017-08-01 16 views
1

I次のコードを持っている:filectime()(ファイルは手動で削除されても)変更されていない

<?php 

function logAction($action,$file){ 

    /** 
    * delete the file 
    */ 

    if((time()-filectime(ROOT_PATH.'/logs/'.$file)) > LOG_CLEAN){ 

     unlink(ROOT_PATH.'/logs/'.$file); 

    }; 

    /** 
    * write the action 
    */ 

    $f = fopen(ROOT_PATH.'/logs/'.$file,'a'); 

    $data = "[".date('d-m-Y H:i:s')."] ".$action."\n"; 

    fwrite($f,$data); 

    fclose($f); 

    return true; 

}; 

?> 

問題がある:filectime()の値を変更していませんが。書き留めると、たとえ新しいファイルが生成されたとしても(たとえば、手動でログファイルを削除した場合など)、同じままです。

私のコードの問題点は何ですか?

ありがとうございます。

答えて

0

結果filectime()の機能がキャッシュされます。キャッシュをクリアするにはclearstatcache()を使用してください。 clearstatcache()関数はファイルステータスキャッシュをクリアします。ここでドキュメントを確認してくださいphp filectime()php clearstatcache()

関連する問題