web-dev-qa-db-ja.com

同じプレフィックスを持つファイルを削除する

$prefix = 'something_prefix';
unlink($prefix.'.*');

上記のコードは機能していませんが、以下のようなコードがうまく機能しているのがわかります

unlink('*.jpg');

どうして?これはうまくいくのだろうか?

unlink('*.*');

同じ文字列で始まるファイルを削除するにはどうすればよいですか?このような

same123.jpg
sametoo.png
samexxx.gif

それらはすべて「同じ」という文字列で始まりますが、異なる拡張子で終わります。これを行う方法は?

私はこれを行う安価な方法をすでに持っていますが、もっと良い解決策があるかどうか疑問に思いますか?

26
castiel

このコードを試してください:

_$mask = 'your_prefix_*.*';
array_map('unlink', glob($mask));
_

pS glob()にはPHP 4.3.0+が必要です

57
Raptor

これには glob を使用できます。このようなもの(それをテストしませんでした):

foreach (glob("something_prefix*.*") as $filename) {
    unlink($filename);
}
27
sectus