[PHP-users 5847] Re: ファイルの削除

GT php-users@php.gr.jp
Mon, 04 Mar 2002 13:24:00 +0900


GTと申します。

いつもお世話になっております。

お返事遅くなりましてすいません。

色々とありがとうございます。

> Perlでのforeach、あるディレクトリ内にあるファイル一覧取得方法、
> -M、正規表現、ファイル削除について、PHPではどのように書くのかを
> 調べれば難しいことではないと思いますが。
> 日本語マニュアル
> http://www.php.net/manual/ja/manual.php
> ここの、
> 11章      制御構造  ←foreach
> XXIV      ディレクトリ関数  ←ディレクトリ内のファイル一覧取得
> XXX       ファイルシステム関数  ← -Mとファイル削除
> LXXXV     Perl互換の正規表現関数
> LXXXVII   正規表現(regex)関数
> とか。
> それとも、自分で調べるのは嫌だから誰か代わりにやってくれ、と
> 言うことなのでしょうか???

いえいえ、調べるのが嫌というわけではないのですが、
この様な単純なコードでしたらすでにどなたかが使用しているのではないかと思いま
してお聞きさせていただきました。

私は下記のように試してはいたのですが「fileatime($file)」及び
「filemtime($file)」では時刻を取得できないファイルがあります。

$dir = opendir("./data/");
while($file = readdir($dir)){
    if(!eregi(".html$", $file) && 7200 < (time()-filemtime($file))){
        unlink( $file );
    }
}

ですので現在はperlにてコードを書き、「`./delete.pl`;」としているのですが
できればすべてphpで書きたいので既に使っている方がいらっしゃいましたら
教えていただきたいと思いまして質問させていただきました。


----------------------------------------------------------------------
> $d = dir( $directory_name );
> while ( $f = $d->read() ) {
> if ( ! is_dir( $f ) ) {
> if ( substr( $f, strrpos($f, "."), strlen($f) ) != ".html" ) {
> if ( ( time() - fileatime($f) ) > 86400 ) {
> unlink( $file );
> }
> }
> }
> }
> $d->close();
----------------------------------------------------------------------
> <?php
> echo "<xmp>";
> system("/usr/bin/find ./hoge -atime +1 -exec rm -f {} \; 2>&1");
> echo "</xmp>";
> ?>
----------------------------------------------------------------------