2016-10-04 10 views
1

PHPでは、類似の名前のファイルを検索するにはどうすればよいですか? 3つのファイル:file.csv,file.csv.1およびolderfile.csvがあります。類似の名前のファイルを探す

file.csvfile.csv.1のファイルの検索方法は?

+0

"類似"のルールは何ですか? 'file.csv'、' file1.csv'、 'file.csv.1'、' 1file.csv'はすべて似ていますか? –

答えて

1

どのように "類似している"か定義します。そして正規表現を使ってみてください。

$filename = basename("/some/long/path/file.csv"); 
// Or other vars pointing to your actual file. 

$pattern = '/(^file\.csv(?:\.\d|))/'; 

if(preg_match($pattern, $filename, $matches)){ 
    print_r($matches); 
} else { 
    echo "Not found."; 
} 
+1

私は正規表現について同意します。このようなパターンは、file1.csv:\ /([\ w \ /] * \ /([\ w \ d \。] * file [\ d \。] * *)のようなものであっても、 csv \。?[0-9]?)/ ' – sdexp

+0

どのように複雑になるかわからないので、単純なパターンを提供してください。もちろん、必要に応じてもっと複雑になる可能性があります。 – HZS

2

これにはglob()関数を使用できます。これはあなたが言及したファイルで動作するはずです:

foreach (glob("file.csv*") as $filename) { 
    echo "$filename\n"; 
} 
+0

ねえ。私はグロブについて知っています。しかし、Windowsでは動作しません。 –

+0

えーと、globルールが違っていない限り、Windowsでも動くはずです。実際のコードを投稿できますか? –

+0

"olderfile.csv"が結果に含まれていないことを確認してください。 'glob(" file.csv * ")' –

関連する問題