Last active
March 7, 2024 06:02
-
-
Save james2doyle/33794328675a6c88edd6 to your computer and use it in GitHub Desktop.
A simple JSON response function for PHP. Used in various PhileCMS plugins.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
function json_response($code = 200, $message = null) | |
{ | |
// clear the old headers | |
header_remove(); | |
// set the actual code | |
http_response_code($code); | |
// set the header to make sure cache is forced | |
header("Cache-Control: no-transform,public,max-age=300,s-maxage=900"); | |
// treat this as json | |
header('Content-Type: application/json'); | |
$status = array( | |
200 => '200 OK', | |
400 => '400 Bad Request', | |
422 => 'Unprocessable Entity', | |
500 => '500 Internal Server Error' | |
); | |
// ok, validation error, or failure | |
header('Status: '.$status[$code]); | |
// return the encoded json | |
return json_encode(array( | |
'status' => $code < 300, // success or not? | |
'message' => $message | |
)); | |
} | |
// if you are doing ajax with application-json headers | |
if (empty($_POST)) { | |
$_POST = json_decode(file_get_contents("php://input"), true) ? : []; | |
} | |
// usage | |
echo json_response(200, 'working'); // {"status":true,"message":"working"} | |
// array usage | |
echo json_response(200, array( | |
'data' => array(1,2,3) | |
)); | |
// {"status":true,"message":{"data":[1,2,3]}} | |
// usage with error | |
echo json_response(500, 'Server Error! Please Try Again!'); // {"status":false,"message":"Server Error! Please Try Again!"} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Instead of
I prefer
so there's no need for
echo
before callingjson_response
anymore, and the script is exited.