2012-12-20 3 views
0

에서 최신 파일 후행 번호를 가져옵니다 :내 디렉토리에 이런 일이 PHP

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

이제 "슬라이더"이미지의 마지막 후행 번호를 얻을 수있는 방법이 있나요? 다음 업로드 이미지의 이름을 slider-12.xxx로 지정해야합니다.

각 루프마다 시도했지만 분명히 슬라이더 -3을 다음 이름으로 사용합니다.

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

나이 :

확인, 여기에 나는 그것이

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

예, 수동으로, 아약스 등에서 업로드가 있습니다. 루이의 솔루션은 훌륭하게 작동하지만 다른 접근 방식을 사용했습니다 ... 파일을 폭발시켜 최종 점과 대시 전에 문자열 세트를 garbed했습니다. . 그리고 각 경우에 숫자가 될 것이기 때문에, 나는 +1을 추가했다 .... 그러나 루이 솔루션이 더 좋다 ... :) – Peter

답변

4

당신이 뭔가를 시도 할 수 한 방법입니다

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

'max ++'가 루프 외부에 있는가? – webnoob

+0

예. 업로드 된 파일의 다음 ID가 가장 높은 기존 ID보다 하나 높아야하기 때문입니다. 그래서 우리는 가장 큰 것 하나를 더할 것입니다. –

+0

좋아요, 나는 OP를 오해 했으므로이 해결책으로 혼란스러워했습니다. – webnoob

관련 문제