Pathinfo najlepsze.
Fifi... pop i end zadziałają identycznie

End ustawia wskaźnik na ostatni element i zwraca go. Pop usuwa ostatni element i zwraca go :] Ja dodałem if dodatkowy by zwyczajnie poinformować usera co mu zwracamy. Zauważ bowiem, że Ty zwrócisz nazwę pliku jeśli nie ma on rozszerzenia, a ja ifem jeszcze sprawdzam czy aby nie mamy sytuacji, że ktoś przesłal plik bez rozszerzenia w nazwie. Ale równie dobrze można POP zastąpić END w moim przykładzie i efekt będzie identyczny. W tym przypadku obie funkcje mogą się wzajemnie zastępować. Gdybyśmy bez tego IF zostawili, to dla pliku "shadow" $rozszerzenie miała by wartość "shadow", ale z IFem wywali, że plik nie ma rozszerzenia

A pliki bez rozszerzenia są powszechne na linuxie dla przykładu, bo on ich zwyczajnie nie potrzebuje. Nie samym windowsem żyje świat. Poza tym coś takiego jak "nie ufaj danym przesłanym przez usera" jest zawsze prawdziwe. A nazwa pliku też jest daną z forma i trzeba na nią zwracać uwagę