4

要するに

というファイルがありますclients.(unique parameter)。そして今、unlink()それをしたいのですが、ファイル拡張子がわからないので、どうすれば成功するでしょうか?

長い話

DBクエリmd5()がファイル名で、キャッシュの有効期限が拡張子であるキャッシュシステムがあります。

例: 896794414217d16423c6904d13e3b16d.3600

ただし、有効期限が変更される場合があります。したがって、最終的な解決策として、ファイル拡張子は無視する必要があります。

私が考えることができる唯一の方法は、ディレクトリを検索してファイル名を照合し、ファイル拡張子を取得することです。

4

2 に答える 2

10

次を使用しglob()ます。

$files = glob("/path/to/clients.*");
foreach ($files as $file) {
  unlink($file);
}

必要に応じて、filemtime()によって返された各ファイルの をチェックしglob()て、たとえば最も古いものだけを削除するように並べ替えることができます。

// Example: Delete those older than 2 days:
$files = glob("./clients.*");
foreach ($files as $file) {
   if (filemtime($file) < time() - (86400 * 2)) {
     unlink($file);
   }
}
于 2012-02-06T17:06:11.383 に答える
1

ディレクトリで一致するファイル名を検索するというあなたの推測は正しいです。あなたが取ることができる複数のアプローチがあります:

readdir問題のフォルダ

globマイケルが提案したように

の出力を取得して、結果の文字列のリンクを解除することもできls {$target_dir} | grep {$file_first_part}ます (一致が見つかったと仮定します)。

于 2012-02-06T17:08:19.587 に答える