Php 查找相似的命名文件
在PHP中,如何搜索具有类似名称的文件?有三个文件:Php 查找相似的命名文件,php,regex,glob,Php,Regex,Glob,在PHP中,如何搜索具有类似名称的文件?有三个文件:file.csv、file.csv.1和olderfile.csv 如何查找文件file.csv和file.csv.1?您可以使用此功能。这应该适用于您提到的文件: foreach (glob("file.csv*") as $filename) { echo "$filename\n"; } 取决于您如何定义“相似”,并尝试使用正则表达式 $filename = basename("/some/long/path/file.csv"
file.csv
、file.csv.1
和olderfile.csv
如何查找文件file.csv
和file.csv.1
?您可以使用此功能。这应该适用于您提到的文件:
foreach (glob("file.csv*") as $filename) {
echo "$filename\n";
}
取决于您如何定义“相似”,并尝试使用正则表达式
$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.";
}
嘿我知道地球仪。但是它在Windows中不起作用。嗯,它也应该在Windows上起作用,除非glob规则可能不同。您可以发布实际的代码吗?请检查结果中是否不应包含“olderfile.csv:
glob(“file.csv*”)
Right,如果不应包含olderfile.csv,则模式将确实如@Yosvellquintero所述。我正在更新答案,“相似”的规则是什么?file.csv
、file1.csv
、file.csv.1
、1file.csv
都类似吗?我同意regex。像这样的模式将匹配所有提到的情况,甚至像file1.csv:/^[\w\/]*\/([\w\d\]*file[\d\.]*\.csv\.?[0-9]?)/
我不确定它需要多复杂,所以只需提供一个简单的模式。当然,如果需要的话,它可能会更复杂。