php json ファイル出力 - PHP スクリプトから JSON を返す

PHP JSON 変換 / php / json / header

PHPスクリプトからJSONを返したいのですが。

dakab



Answer #1

この質問には多くの回答が寄せられましたが、JSONレスポンスが不正にならないように必要なものをすべて備えた、クリーンなJSONを返すためのプロセス全体をカバーするものはありませんでした。


/* * returnJsonHttpResponse * @param $success: ブール * @param $data: オブジェクトまたは配列 */
function returnJsonHttpResponse($success, $data)
{
    // 無効な JSON を作成する可能性のある文字列をすべて削除します
    // PHP の通知、警告、ログなど...
    ob_clean();

    // これにより、以前に追加されたヘッダーがクリーンアップされ、クリーンが開始されます
    header_remove(); 

    // コンテンツ タイプを JSON と charset に設定します
    // (charset は別のものに設定できます)
    header("Content-type: application/json; charset=utf-8");

    // HTTP 応答コードを設定します。2xx = SUCCESS、
    // それ以外はすべてエラーになります。HTTP ドキュメントを参照してください
    if ($success) {
        http_response_code(200);
    } else {
        http_response_code(500);
    }
    
    // PHP オブジェクトまたは配列を JSON 文字列にエンコードします。
    // stdClass または配列
    echo json_encode($data);

    // 何も追加されていないことを確認する
    exit();
}