3 日以上経過したログ ファイルを削除する、致命的エラー
PHP がわからないので、指定したディレクトリにある 3 日以上経過したファイル (ログ) を削除する機能を実装したいと考えています。 ディレクトリを削除する機能を見つけました。 Baidu では、次のように
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> function del_directory($dir){ if(!($mydir = @dir($dir))){ return; } while($file = $mydir->read()){ if(is_dir("$dir$file") && $file!='.' && $file!='..'){ @chmod("$dir$file", 0777); del_dir("$dir$file"); }elseif(is_file("$dir/$file")){ $file_time=@stat($file);//读取文件的最后更新时间 if(time() - $file_time > 3600 * 24 * 3){ @chmod("$dir/$file", 0777); @unlink("$dir/$file"); } } } $mydir->close(); @chmod($dir, 0777); @rmdir($dir); }
$stat = @stat($file); $file_time=$stat['mtime'];//ファイルの最終更新時刻を読み取ります <br><font color="#e78608">------解決策---------</font><br>致命的なエラー: サポートされていない操作データ型<br>理由は、データ型に準拠していないデータが一部の関数に転送されたためです。配列を関数に渡すのは特に簡単で、この関数が受け入れる必要があるパラメータは数値です。 <br><font color="#e78608">------解決策---------</font><br>if(time() - $file_time > 3600 * 24 * 3)<br>()<br>if((time()-$file_time)>(3600*24*3)){} で区切ろうとしています <br><font color="#e78608">------解決策---------</font><br>array stat ( string $filename );<br>配列を返します。 <br> $file_time=@stat($file);// ファイルの最終更新時刻を読み取ります<br> if(time() - $file_time > 3600 * 24 * 3){ // ここでは配列が使用されます。 $stat['mtime']<br> <br><br> で stat()<div class="clear"> をチェックします</div>