Search code examples
phpjsonheader

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?


Solution

  • 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; 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).