2016-10-04 88 views
1

在PHP中,如何搜索具有相似名稱的文件?有三個文件:file.csvfile.csv.1olderfile.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 \。] *文件[\ d \。] * \。 csv \。[0-9]?)/' – sdexp

+0

我不確定它需要多麼複雜,所以只需提供一個簡單的模式。當然,如果需要,它可能會更復雜。 – HZS

2

您可以使用glob()函數。這應該與你提到的文件一起工作:

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

嘿。我知道這個glob。但它在Windows中不起作用。 –

+0

嗯,它也應該在Windows上工作,除非glob規則可能不同。你能發佈實際的代碼嗎? –

+0

檢查結果中是否應該包含「olderfile.csv」:glob(「file.csv *」)' –