Mime Type vom Inhalt einer Variablen ermitteln.

  • PHP

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von JackSA.

    Mime Type vom Inhalt einer Variablen ermitteln.

    Hallo, mal wieder :)

    ich bin gerade dabei mit PHP eine API zu schreiben und dem Response wir im Header der Content Type mit gegeben.
    Den Content Type möchte ich aber vom Script ermitteln lassen, bisher wird er im entsprechenden Script fest geschrieben.
    Da diese Methode Fehler enthalten kann,

    Quellcode

    1. header('Content-Type: application/text');
    , wie man hier schön sieht.

    Möchte ich den Mime Type automatisch ermitteln lassen und dann an das Frontend weitergeben.
    Die von mir in der PHP Dokumentation gefundenen Funktionen, z.b. mime_content_type oder finfo_file werden alle genutzt,
    um den Mime Type einer Datei zu bestimmen.
    Ich brauch aber eine Funktion die den Mime Type eines Variablen Inhalts ermittelt.

    Weiß da jemand was oder hat eine Idee für eine eigene Funktion, das wäre ganz toll, weil ich hab da gerade keine Idee.
    Und die Variable kurz als Temp-Datei auf der Festplatte speichern, um dann den MIME-Type zu ermitteln, ist keine Option? Ist natürlich ein Umweg, aber ich befürchte, anders geht es nicht.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Ich hab was gefunden das ich mir zurecht geschustert habe :)

    PHP-Quellcode

    1. $buffer = file_get_contents($testingfile); //$buffer kann den Inhalt einer Datei oder direkt einer Variablen aufnehmen.
    2. //Die Funktion prüft ob es sich um ein json handelt, dazu wird zuerst geprüft ob es ein String ist, UND ob es nach drüber laufen von json_decode um ein Object handelt,
    3. //wenn Ja wird true zurückgegeben wenn nein false.
    4. function isJSON($buffer)
    5. {
    6. return is_string($buffer) && is_array(json_decode($buffer, true)) ? true : false;
    7. }
    8. //Wenn true, wird "application/json" ausgegeben, wenn false, wird über den else zweig mit finfo getestet was es ist und ausgegeben.
    9. // ich hab es mit json, text(plain) und pdf getestet und es hat problemlos funktioniert.
    10. if(isJSON($buffer))
    11. {
    12. echo "application/json";
    13. }
    14. else
    15. {
    16. $finfo = new finfo(FILEINFO_MIME_TYPE);
    17. echo $finfo->buffer($buffer)."<br>";
    18. }

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „JackSA“ ()