peter13135
15.09.2008, 18:40:25
do tej pory sprawdzałem rozszerzenie metodą substr, jednak nie jest ona do tego najlepsza (moim zdaniem), ponieważ rozszerzenia nie zawsze mają taką samą ilość znaków (zwykle 3, ale są takie jak jpeg, lub rmvb), no więc, czy jest jakaś inna metoda??
wpadłem na pomysł, by nazwe pliku rozbić funkcją explode, a następnie wybrac ostatni element, ale może jest jakaś prostrza funkcja??
wookieb
15.09.2008, 18:43:01
Kod
preg_match('/(\.[a-z0-9]{2,5})$/i',$nazwaPliku, $match);
echo $match[1];//
Sprawdź sobie potem jakby co print_r($match); ktory klucz to rozszerzenie jezeli 1 bedzie bledne.
peter13135
15.09.2008, 18:47:09
wydaje mi sie że na jedno wyjdzie z funkcją explode, ale plusik oczywiście leci
wookieb
15.09.2008, 18:48:03
No można można. Ale mnie wydaje się to bardziej eleganckie
peter13135
15.09.2008, 18:51:33
zgadzam sie że wygląda fachowo, ale ja na wyrażeniach regularnych sie niebardzo znam, tzn, jakoś je powoli zaczynam rozumieć, ale sam napewno nienapisze takiego czegoś, a użycie funkcji explode jest łatwe
Shili
15.09.2008, 19:09:43
<?php
$text = 'plik.btmps.fafa'; // plik z rozszerzeniem
$suffix = strrchr($text, '.'); // wycięcie tekstu od ostatniej kropki /* Usunięcie tej kropki metodą "brutalną", nie chce mi się myśleć nad bardziej wyrafinowanymi */
$suffix[0] = '';
?>
Z tego względu, że rozszerzenie to ciąg znaków po ostatniej kropce nie trzeba nawet wyrażeń regularnych ani explode.
Jednak wyrażenia regularne tak czy siak powinno się znać