Permalänk
Medlem

[PHP] Kolla filtyp?

Hej.
Jag undrar om det finns något sätt i php att kolla exakt vilken filtyp en fil är.

Exempel:
Om jag har en fil som heter untitled.txt så vill jag kunna få ut filtypen, txt alltså i det här fallet.

Har provat 'filetype', men den verkar bara kolla om det är en fil eller en mapp.

Tack på förhand!

Visa signatur

rm -rf *.blog

Permalänk
Medlem

mime_content_type då?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Locke
mime_content_type då?

Ok, hur exakt använder man den funktionen? Har uppfattat det som att det bara är att göra så här:
echo mime_content_type('untitled.txt');

Men då får jag följande felmeddelande:
Fatal error: Call to undefined function: mime_content_type()

Visa signatur

rm -rf *.blog

Permalänk
Medlem

Har du filnamnet i en sträng och du är 100% säker på att filtypen endast innehåller tre tecken kan du enkelt göra på följande sätt:

<?php $filename = "untitled.txt"; echo $filetype = substr($filename, -3); ?>

Annars är ett hett tips att du kollar på pathinfo i manualen.

Visa signatur

- "Sometimes you make the right decision,
sometimes you make the decision right."
/Dr. Phil

Permalänk
Medlem

Vilken version av php har du?
I vilket fall som helst så kan se.php.net/mime_content_type hjälpa dig bättre än vad jag kan.

Permalänk
Hedersmedlem

Locke: Man måste kompilera PHP med stöd för mime, de hade (har?) jag inte gjort och därmed fanns inte funktionerna... Antar att det är likadant med Squeeze.

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Lavve
Har du filnamnet i en sträng och du är 100% säker på att filtypen endast innehåller tre tecken kan du enkelt göra på följande sätt:

<?php $filename = "untitled.txt"; echo $filetype = substr($filename, -3); ?>

Annars är ett hett tips att du kollar på pathinfo i manualen.

Eller så använder man strrchr

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Malm
Eller så använder man strrchr

... så får man ".txt" vilket han inte ville ha, utan "txt" utan punkten. Men däremot kan man använda en kombination av strrchr och substr istället för pathinfo:

<?php $filename = "untitled.txt"; echo $filetype= substr(strrchr($filename, "."), 1); ?>

Visa signatur

- "Sometimes you make the right decision,
sometimes you make the decision right."
/Dr. Phil

Permalänk
Medlem

Så här gjorde jag senast. Ger alltid extension i små bokstäver, ger tomma strängen om extension saknas:

# Få filändelse function get_extension($filename) { $ext_array = explode('.',$filename); $last_position = count($ext_array) - 1; $ext = (count($ext_array) > 1) ? strtolower($ext_array[$last_position]) : ''; return $ext; }

Tänk på att filändelse och filtyp (i meningen mime-typ) inte är samma sak.