2016-10-04 87 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 *”)' –