2012-12-20 61 views
0

最新的文件尾號我有這樣的事情在我的目錄:獲取在PHP

slider-1.jpg 
slider-2.png 
slider-4.gif 
slider-8.png 
slider-11.gif 

現在有一種方式來獲得的「滑」圖像拖尾最後數? 我需要得到這個所以接下來上傳的圖片應命名爲slider-12.xxx

我想每個循環,但它顯然讓我滑-3這是在我的情況下,假下一個名字:)

好吧,這裏是我是如何做到的

foreach ($files as $filename) { 
    $filesarr[]= $filename; 
    $namearr = explode('.', $filename); //I had to grab this piece as well during the project, so this is main reason not usin Louis proposal.... i needed that array for something else... 
    $numbers = explode('-', $namearr[1]); 
    $compare[]=$numbers[2]; 

} 
sort($compare, SORT_NUMERIC); 
$assigned_number = end($compare) + 1; 
+1

如果它是獨家上傳的(即沒有人會手動將文件添加到文件夾中),那麼跟蹤最後使用的數字會更容易,例如將其寫入文本文件,並在下次上載時讀取/增量。 – Crisp

+0

是的,會有從各地上傳...手動,ajax的等..路易斯的解決方案效果很好,但我用了不同的方法...我爆炸的文件,在最後點和破折號之前,穿着一套字符串。 。因爲在每種情況下,這將是一個數字,我只是增加了+1 ....但路易斯解決方案更好... :) – Peter

回答

4

你可以嘗試這樣的事:

$max = 0; 
foreach($files AS $file) { 
    $max = max($max, filter_var($file, FILTER_SANITIZE_NUMBER_INT)); 
} 
$max++; 

或本:

natcasesort($files); 
$max = filter_var(array_slice($files, -1), FILTER_SANITIZE_NUMBER_INT) + 1; 
+0

'max ++'外循環? – webnoob

+0

是的,因爲他需要上傳文件的下一個id比最高的現有id高一個。所以我們會採取最大的和增加一個。 –

+0

好吧,我誤解了OP,所以被這個解決方案弄糊塗了。 – webnoob