Karmaşık dosya dayalı bir dizindeki dosya (lar) seçin

2 Cevap

I / var ses dosyaları var

Bu dosya adı

2-3109999999-3246758493-1271129518-1271129505.6.wav

Format
2=campaign id
3109999999=caller id
3246758493=number called
1271129518=timestamp call ended
1271129505=timestamp call started
6=call id

Ben nasıl tüm diğer (örneğin zaman damgası gibi, vb) değişkenleri ve dosya içinde bu sayı var sadece dosyaları tanımlayan olmadan tüm dosyaları bulabilirsiniz 3246758493 hangi denilen sadece numarasını geçmek olsaydı?

2 Cevap

Sen döngü gerekir rağmen klasör: http://php.net/manual/en/function.readdir.php

Ardından klasördeki dosyaların her biri için, deneyin ve sanırım regex kullanarak istenen dosyaya maç?

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

Ayrıca klasörü taramak için DirectoryIterator kullanabilirsiniz ve bir RegexIterator dayandırılmıştır dosyaları filtrelemek için.

$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;
}