Returning JSON from a PHP Script

Scott Nicol picture Scott Nicol · Oct 31, 2010 · Viewed 1.1M times · Source

I want to return JSON from a PHP script.

Do I just echo the result? Do I have to set the Content-Type header?

Answer

timdev picture timdev · Oct 31, 2010

While you're usually fine without it, you can and should set the Content-Type header:

<?php
$data = /** whatever you're serializing **/;
header('Content-Type: application/json');
echo json_encode($data);

If I'm not using a particular framework, I usually allow some request params to modify the output behavior. It can be useful, generally for quick troubleshooting, to not send a header, or sometimes print_r the data payload to eyeball it (though in most cases, it shouldn't be necessary).