[php] wyłapywanie pliku z największym id na końcu nazwy


(Sikora507) #1

Witam.

Natknąłem się na taki problem:

potrzebuję odnaleźć z folderu pewien plik

nazwy plików w tym folderze to przykładowo:

m-1.jpg

m-2.jpg

l-3.jpg

a-4.jpg

na końcu nazwy pliku za myślnikiem jest tak jakby jego identyfikator który ma pomóc mi wybrać ten o najwyższym numerze.

teraz pytanie: jak to zrobić?


(Krzkaczor) #2

To może użyj funkcji explode (albo lepiej wyrażeń regularnych) do oddzielenie numerka i potem pozapisuj do tablicy i przesortuj


(adpawl) #3

Można to zrobić tak:

<?php

$tab = array();

$di=new DirectoryIterator('./');


foreach($di as $file) {

$fn=$file->getFilename();

if(preg_match('/\-[0-9]+\./', $fn, $valid)) { $tab[$valid[0]]=$fn; }


/*

można wzbogacić o wybór konkretnego rozszerzenia pliku

np. dla plików jpg:

if(preg_match('/\-[0-9]+\.jpg/', $fn, $valid)) { $tab[$valid[0]]=$fn; }

albo dla kilku rozszerzeń

if(preg_match('/\-[0-9]+\.(jpg|png|gif)/', $fn, $valid)) { $tab[$valid[0]]=$fn; }

*/

}

rsort($tab); //sortuje malejąco przepisując klucze


//nazwa pliku z największą liczbą będzie w: $tab[0]

echo $tab[0]; //pokazuje wartość pierwszego klucza

?>