2011-06-15 470 views
2

我有一個包含jpeg和原始圖像文件的目錄。一些jpeg文件有它們的原始文件版本,有些則不。幸運的是,如果一個jpeg有一個原始文件,它們被命名爲相同(不包括擴展名)。所以,我需要一種方法來檢查該目錄中是否有相同文件名的匹配原始文件,以排除文件擴展名。原始文件,文件擴展名可能幾乎任何東西。檢查具有相同文件名但擴展名不同的文件

任何想法,我可以做到這一點?我有目前存儲的$ filename的文件名(不包括extesion)。

進一步解釋。我有一個目錄,其中包含以下文件:

cat.jpg 
dog.jpg 
bird.jpg 
cat.raf 
dog.foo 

我需要將cat.jpg與cat.rag和dog.jpg匹配到dog.foo。這些只是從一個上傳的zip文件中提取的。

+0

發佈一些僞代碼,因爲我不明白你想要做什麼 – dynamic 2011-06-15 11:04:08

回答

5

嘗試搜索開始具有相同名稱的文件:

$fileWithoutExtension = basename($filename, '.jpg'); 
$allFilesWithThisName = glob($fileWithoutExtension . '.*'); 
if (count($allFilesWithThisName)) { 
    echo 'There is another file with this name'; 
} 
+0

由於.jpg文件已經存在,count必須大一:if(1 hakre 2011-06-15 12:02:03

+0

不知道if這實際上起作用,因爲它似乎沒有檢查特定的目錄。 – David 2011-06-15 12:13:52

0

正如你已經有文件名W/O擴展,你可以檢查的原始文件存在(file_exists()):

if (file_exists($filename.'.raw')) { 
    echo 'RAW file exists:', $filename , "\n"; 
    } 

但是這對我來說似乎很微不足道,我可能完全不瞭解你的問題。

+0

是的,問題是原始文件沒有一定的文件擴展名。我只知道他們不會是jpeg – David 2011-06-15 11:58:53

+0

好吧,然後[Sjoerd的答案](http://stackoverflow.com/questions/6356684/check-for-file-with-same-filename-but-different-extension/6356729 #6356729)有解決方案,雖然它需要輕微的編輯。在那裏添加了評論。 – hakre 2011-06-15 12:01:25

相關問題