ホームページ > バックエンド開発 > PHPチュートリアル > php ログファイルを削除する

php ログファイルを削除する

WBOY
リリース: 2016-06-23 13:26:36
オリジナル
990 人が閲覧しました

ログを保存するフォルダーができました。プログラムを使用して古いログ ファイルを削除するにはどうすればよいですか?神々には何か考えがあるのでしょうか?


ディスカッションに返信 (解決策)

foreach(glob('日志文件目录/*.*') as $fn) {  if(filemtime($fn) < 指定的时间) unlike($fn);}
ログイン後にコピー

削除するスクリプトを作成し、1 日 1 回実行して期限切れのログ ファイルを確認できます (現在時刻と最終変更時刻または作成時刻を比較します)ログの)) を削除してください

スクリプトは次のようなものです、内容が 7 日以上変更されているファイルを削除します

find ./ -mtime +7 | xargs rm -rf 
ログイン後にコピー

この作業を完了するには php を使用する必要があります。つまり、Baidu Kan を使用してフォルダー内のファイルを時間に従って並べ替えますが、両方を使用するのは不可能です。 。 。
これは私のコードです
​​ function dir_size($dir,$url){
$dh = @opendir($dir) // ディレクトリを開き、ディレクトリ ストリームを返します
$return = array(); $ I = 0;
While ($ file = @Readdir ($ dh)) {// カタログ内のファイルを読み取ります
if ($ file! = '.' And $file! = '..') {
$ filesize [] =round((filesize($path)/1024),2);//ファイルサイズを取得します
$filename[] = $path;// H:i :s",filemtime($path)); // ファイルの最終変更日を取得します @closedir($dh); ディレクトリ ストリーム r をオフにする_multisort ($ filetime, sort_desc, sort_string, $ files); // ソートリターン $ RETURN; // ファイルを返します。 DIR_SIZE ("htdocs"), "htdocs") ;
? & Gt;
array_multisort() の実行後に問題が発生しました: 引数 #1 は配列またはソート フラグであることが期待されます
最良の結果は、 phpを実行すると、ファイルを時系列に並べることができるので、ファイルを選択して削除する機能を使用できます。 。 。

学びました。 。 。 。

array_multisort($filetime,SORT_DESC,SORT_STRING, $files);//時間順に並べ替えます
$files はどこに割り当てられますか?

array_multisort($filetime,SORT_DESC,SORT_STRING, $files);//時間順に並べ替えます
$files はどこに割り当てられますか?

関数の使用法を確認したところ、array_multisort 関数の使用方法がわかりました。指定された最後のパラメータは配列であるはずですが、4 番目のパラメータに値を割り当てる方法がわかりません。 $files はファイル内のすべてのファイルを参照する必要がありますが、使い方がわかりません。 。 $files=$return[] = $url.'/'.$file;?

$files を $return に変更しましたが、それでも動作しませんでした。 。 。

この関数は

function dir_size($dir,$url){  $dh = @opendir($dir);             //打开目录,返回一个目录流  $return = array();  $i = 0;  while($file = @readdir($dh)){     //循环读取目录下的文件    if($file!='.' and $file!='..'){      $path = $dir.'/'.$file;     //设置目录,用于含有子目录的情况      if(is_dir($path)){      }elseif(is_file($path)){        $files[] = array(          'filename' => $path,//获取文件名称                               'filesize' => round((filesize($path)/1024),2),//获取文件大小          'filetime' => date("Y-m-d H:i:s",filemtime($path)),//获取文件最近修改日期             'return' => $url.'/'.$file          );        $filetime[] = filemtime($path);//获取文件最近修改日期         }    }  }    @closedir($dh);             //关闭目录流  array_multisort($filetime,SORT_DESC,SORT_STRING, $files);//按时间排序  return $files;               //返回文件}
ログイン後にコピー
として書き換えることができます

さて、あなたのコードを使用したところ、それが機能することがわかりました。

次に、別の方法は、$files を $return に直接置き換えることであることがわかりました。これは、以前のデータがリターンに保存されるためです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート