PHP Headers and Popular Mime Types

By  on  

Like my Create a Basic Web Service Using PHP, MySQL, XML, and JSON illustrates, even though a file's extension ends in PHP, you can still tell the browser that you're outputting a different content type. Here are a few of the more popular content types used on the internet.

Atom

header('Content-Type: application/atom+xml');

CSS

header('Content-Type: text/css');

Javascript

header('Content-Type: text/javascript');

JPEG Image

header('Content-Type: image/jpeg');

JSON

header('Content-Type: application/json');

PDF

header('Content-Type: application/pdf');

RSS

header('Content-Type: application/rss+xml; charset=ISO-8859-1');

Text (Plain)

header('Content-Type: text/plain');

XML

header('Content-Type: text/xml');

Just because a file ends in .PHP doesn't mean it responds with XHTML -- respond however you'd like!

Recent Features

  • By
    Facebook Open Graph META Tags

    It's no secret that Facebook has become a major traffic driver for all types of websites.  Nowadays even large corporations steer consumers toward their Facebook pages instead of the corporate websites directly.  And of course there are Facebook "Like" and "Recommend" widgets on every website.  One...

  • By
    9 Mind-Blowing WebGL Demos

    As much as developers now loathe Flash, we're still playing a bit of catch up to natively duplicate the animation capabilities that Adobe's old technology provided us.  Of course we have canvas, an awesome technology, one which I highlighted 9 mind-blowing demos.  Another technology available...

Incredible Demos

  • By
    QuickBoxes for Dojo

    Adding to my mental portfolio is important to me. First came MooTools, then jQuery, and now Dojo. I speak often with Peter Higgins of Dojo fame and decided it was time to step into his world. I chose a simple but useful plugin...

  • By
    CSS Background Animations

    Background animations are an awesome touch when used correctly.  In the past, I used MooTools to animate a background position.  Luckily these days CSS animations are widely supported enough to rely on them to take over JavaScript-based animation tasks.  The following simple CSS snippet animates...

Discussion

  1. Great list of mime types.
    Perhaps I’d just be careful about the charset at the RSS example. People could add it blindly and suddenly accented characters would stop working if the rest of the site is using other encodings, like utf-8.

  2. Interesting list. Nothing new, but still nice. BTW Javascript and XML should be application, text is obsolete.

  3. @Matěj Grabovský: Interesting. Can you share your resource for knowing that?

  4. @David Walsh: Well, especially Wikipedia, RFCs (concretely RFC3023) and this thing.

  5. Thank you for sharing Matěj!

  6. You’re welcome, sir!

  7. BTW, It is common to prefix experimental mime types with ‘x-‘ (e.g. application/x-json)

  8. Very usefull stuff, I suggest you ad this one too (exe, zip, rar…)

    header("Content-Type: application/force-download");
    

    BTW, 7 comments, since may 7th… and it’s 7 a.m. here in Morocco

  9. Thanks a lot for this information.

  10. Content-Type or Content-type ?

  11. Have been using just the java, css and htmls. Will do with the rest later.
    Thanks for the list David.
    Pleasure reading.
    ;)

  12. Perfect list! Just what I was looking for. Thanks, Mr. Walsh :-)

  13. nodeset[0];
    $i = $r->new_child(“item”);
    $i->new_child(“title”, $head);
    $i->new_child(“link”, $link);
    $i->new_child(“description”, $comment);

    $out = domxml_dumpmem($doc);
    $file = $arch . “.xml”;
    $f = fopen($file, ‘w’);
    fputs($f, $out);
    fclose($f);

    echo $out;
    ?>

  14. Really nice, that’s exactly what I was looking for!
    Thanks a lot David, for another great tutorial.

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!