I want to return JSON from a PHP script.
Do I just echo the result? Do I have to set the Content-Type
header?
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).