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
    Introducing MooTools Templated

    One major problem with creating UI components with the MooTools JavaScript framework is that there isn't a great way of allowing customization of template and ease of node creation. As of today, there are two ways of creating: new Element Madness The first way to create UI-driven...

  • By
    Creating Scrolling Parallax Effects with CSS

    Introduction For quite a long time now websites with the so called "parallax" effect have been really popular. In case you have not heard of this effect, it basically includes different layers of images that are moving in different directions or with different speed. This leads to a...

Incredible Demos

  • By
    Retrieve Google Analytics Visits and PageViews with PHP

    Google Analytics is an outstanding website analytics tool that gives you way more information about your website than you probably need. Better to get more than you want than not enough, right? Anyways I check my website statistics more often than I should and...

  • By
    Element Position Swapping Using MooTools 1.2

    We all know that MooTools 1.2 can do some pretty awesome animations. What if we want to quickly make two element swap positions without a lot of fuss? Now you can by implementing a MooTools swap() method. MooTools 1.2 Implementation MooTools 1.2 Usage To call the swap...

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!