根据复杂的文件名选择目录中的文件

时间:2010-04-24 01:51:06

标签: php

我在var /

中有音频文件

这是文件名

2-3109999999-3246758493-1271129518-1271129505.6.wav

格式
2 =广告系列ID为 3109999999 =来电号码
3246758493 =号码为 1271129518 =时间戳呼叫结束
1271129505 =时间戳呼叫开始
6 =来电号码

如果我只传递名为3246758493的号码,如何找到所有文件而不定义所有其他变量(例如时间戳等)以及文件名中包含该号码的文件?

2 个答案:

答案 0 :(得分:1)

您需要循环浏览文件夹:http://php.net/manual/en/function.readdir.php

然后对于文件夹中的每个文件,尝试将其与使用正则表达式请求的文件匹配我猜?

http://www.txt2re.com/index-php.php3?s=2-3109999999-3246758493-1271129518-1271129505.6.wav&8

答案 1 :(得分:1)

您还可以使用DirectoryIterator扫描文件夹,使用RegexIterator根据模式过滤文件。

$id = '3246758493';
$files = new RegexIterator(new DirectoryIterator('var/'), 
                           "#^\d-\d{10}-$id-\d{10}-\d{10}\.\d\.wav$#D");
foreach ($files as $fileinfo) {
    echo $fileinfo . PHP_EOL;
}