Hat PHP eine Funktion, die bei einem gültigen Inhaltstyp die korrekte Dateierweiterung liefert?

8

Hat PHP eine Funktion, die bei einem Inhaltstyp eine Dateiendung zurückgibt?

Ich suche nach etwas, das wie folgt funktioniert:

%Vor%

Ziel ist die Verwendung einer Bibliotheksfunktion, die alle Inhaltstypen verarbeitet. Basierend auf dem obigen Muster, könnte ich mit etwas wie diesem selbst rollen:

%Vor%

... aber das scheint Janky. Kennt jemand eine bereits geschriebene PHP-Lösung? LMK. Danke!

    
John Erck 23.01.2012, 04:46
quelle

2 Antworten

20

Angesichts der begrenzten Anzahl von Dateitypen, die in der Datenbank meiner Anwendung gespeichert sind, war die folgende Klasse / Methode eine akzeptable Lösung.

%Vor%

Bevor wir uns jedoch auf die obige Lösung festgelegt haben, habe ich auf Google gesucht (wie von @whichdan vorgeschlagen) und die folgende Mapping-Ressource gefunden: "Erweiterung zu MIME-Typ".

Ссылка

Nach einer Analyse der Daten in der obigen URL wurde klar, dass es keine definitive Lösung für dieses Problem gibt (was wahrscheinlich daran liegt, dass es in PHP keine "Inhaltstyp zu Dateierweiterung" -Funktion gibt) .

Um diese Tatsache zugunsten der Stack Overflow-Community zu illustrieren, habe ich die in der obigen URL präsentierten Daten analysiert und jeden Inhaltstyp in eine von zwei Kategorien aufgeteilt - entweder "DEFINITIVE" oder "AMBIGUOUS". Das Ausführen von var_export auf jedem meiner Post-Parse-Arrays führt zu folgendem PHP-Code.

%Vor%

... und ...

%Vor%     
John Erck 23.02.2012, 01:45
quelle
0

Es ist sehr einfach, eine eigene Klasse dafür zu erstellen.

Google sucht nach "mimetype file extension list"

Erstellen Sie eine statische Klasse mit einem mimetype = & gt; Erweiterungsliste, die in einem Array gespeichert ist, und dann eine findByMimeType- und findByExtension-Methode schreiben. Sie können array_search verwenden, um nach Wert zu suchen.

    
whichdan 23.01.2012 08:55
quelle