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ł: Olimpiada Zdrowia PCK

Olimpiada Zdrowia PCK

Artykuł: Zostań dawcą szpiku!

Zostań dawcą szpiku!

Artykuł: Przeglądarka Vivaldi

Przeglądarka Vivaldi

Artykuł: Lenovo

Lenovo

Artykuł: Światowy Dzień Oszczędzania

Światowy Dzień Oszczędzania

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły