Scritto da davidonzo il 30/10/2007, in Web, Tutorial
ATTENZIONE!
L'articolo che stai leggendo è stato scritto 1667 giorni orsono.
Le informazioni presenti potrebbero non essere aggiornate!

La funzione mime_content_type() è molto utile per reperire la tipologia di un file. Se stiamo programmando un piccolo file manager ci permette di dividere i file per tipologia, senza possibilità di errore.

La funzione non è compresa nel core di default del PHP. Va compilata con un:

--with-mime-magic=/path/to/magic.mime

Se, come troppo spesso succede, non possiamo compilare il PHP sul server ed il nostro fornitore non ci ha pensato prima, possiamo sopperire alla mancanza della funzione mime_content_type() utilizzando direttamente la funziona file.

if (!function_exists('mime_content_type')) { 
 function mime_content_type($file) { 
  $f = escapeshellarg($file); 
  return trim( `file -bi $file` ); 
 }
}

In questo modo potremo utilizzare la funzione mime_content_type() indipendentemente dal fatto che magic.mime sia compilato o meno.

Hai trovato l'articolo interessante?
Sottoscrivi il Feed RSS per essere informato automaticamente degli ultimi aggiornamenti!
 
.Commenti rss
# 1
Non funziona.
Quei single-quote (che non sono) nel return non fanno ritornare nulla e se ci metto i veri single-quote o le virgolette non restituisce quello per cui la funzione è scritta.
Di debug  (Inviato il 06/12/2007 @ 10:37:09)
# 2
@ debug: funziona, te lo assicuro, anche perchè la uso qui :-)

Bisognerebbe capire come la applichi.
Di davidonzo  (Inviato il 06/12/2007 @ 10:49:25)
# 3
Funziona eccome (a patto che tu non abbia un server Windows)!
Grande Davidonzo!!!
Di UnluckyLuKE  (Inviato il 31/07/2008 @ 14:55:49)
# 4
anche se è passata una vita da quando ha postato questo articolo, sento il bisogno di ringraziarti.
sul mio easyPHP naturalmente la funzione è presente, ma non sul server di fatcow che hanno installato la versione 5.2 di PHP, e naturalmente non posso compilare nulla.
è una giornata che cerco di trovare alternative, tipo java,as3,js ecc... ma nulla, invece la tua soluzione (non riesco a capire come) funge perfettamente.

soluzione che spero duri

grazie, ty, tu, ecc....
ciauz
Di JeanPaul  (Inviato il 04/09/2011 @ 18:49:06)
# 5
...integrazione
credo di aver capito che `file -bi $file` sia un comand_line unix, ecco xké non funge con i server windows; quello che non riesco a capire è come, all'alba del 2012, un grosso network come FatCow sia fermo ancora alla release 5.2.12 di PHP :-(
cmq sei un mito, io non conosco unix, ma mo vado a istruirmi sulle sue shell, visto che l'integrazione con PHP è cosi facile; peccato non ci sia un'integrazione identica con le cmd di windows (o c'è?).
grazie ancora e ciao
Di JeanPaul  (Inviato il 05/09/2011 @ 08:40:48)


I commenti possono essere moderati.
Se non lo vedi comparire subito non reinserirlo più volte.
Grazie per la gentile collaborazione.