Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

PHP: Rozszerzenie pliku

poniedziałek,

PHP: Rozszerzenie pliku

Jak ustalić rozszerzenie pliku?

Znajomość rozszerzenia pliku jest wymagana w wielu sytuacjach, np. kiedy chcemy pozwolić użytkownikowi na zmianę nazwy pliku z zachowaniem aktualnego rozszerzenia. Przedstawię aż siedem sposobów, być może alternatywy będą dobrym punktem wyjścia przy rozwiązywaniu podobnego problemu.

Sposoby w wierszach 3-6 ułożone są od optymalnego rozwiązania, metoda z wiersza nr 3 jest bezwzględnie najlepsza w większości przypadków. Zastosowany w wierszu nr 4 typ składni, jest dostępny od PHP 5.5.

Wiersze 7-8 to użycie wyrażeń regularnych. Jak widać wcześniej, nie ma potrzeby uruchamiania aparatu interpretacji wyrażeń regularnych.

Użycie wbudowanej w język PHP klasy SplFileInfo (dostępne w PHP od wersji 5.1.2, wiersz nr 9) może znaleźć zastosowanie przy obiektowym podejściu do programowania, kod będzie jednorodny stylistycznie. Prezentowany styl składni dostępny jest od wersji 5.3.6 języka PHP.

Rozpatrywany problem jest na tyle prosty, że istnieje sposób rozwiązania bez stosowania funkcji w oparciu jedynie o operatory i instrukcje sterujące (wiersze 11-15). Oczywiście konstruowanie takich rozwiązań wymaga już dobrej znajomości języka. Nie jest to też zalecany sposób.

Prezentowane przepisy nie badają typu pliku (nie można ich wykorzystać w celu ustalenia typu pliku). Nie sprawdzą się też w przypadku złożonych rozszerzeń (np. tar.gz). Wymagane wtedy będzie uwzględnienie predefiniowanej listy spotykanych złożonych rozszerzeń. Rozwiązania są doskonałe przy typowych dokumentach (DOC, PDF, JPG itp.).

$plik = 'regulamin-plac.2017.txt';

echo pathinfo($plik, PATHINFO_EXTENSION);
echo pathinfo($plik)['extension'];
echo substr($plik, strrpos($plik, '.') + 1);
echo array_reverse(explode('.',$plik))[0];
preg_match('/.[^.]+$/i',$plik,$ext);
echo $ext[0];
echo (new SplFileInfo($plik))->getExtension();

$ext = '';
for($i=0;@$plik[$i] || @$plik[$i]==='0';$i++) {
	if($plik[$i]=='.') $ext = '';
	else $ext .= $plik[$i];
}
echo $ext;

Powyższa ramka to odnośniki do właściwych stron dokumentacji języka PHP.

Artykuł: Staże w Hiszpanii

Staże w Hiszpanii

Artykuł: Conformité Européenne

Conformité Européenne

Artykuł: Display Stream Compression

Display Stream Compression

Artykuł: High Dynamic Range

High Dynamic Range

Artykuł: PiP i podobne technologie

PiP i podobne technologie

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły