Php – Returning JSON from a PHP Script


I want to return JSON from a PHP script.

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

Best Solution

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

$data = /** whatever you're serializing **/;
header('Content-Type: application/json; charset=utf-8');
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).