ユアマイスター株式会社エンジニアブログ

ユアマイスター株式会社のエンジニアが日々徒然。

APIの実装ででたエラー

APIの実装後、このようなエラーが出ました。

2017-06-10 18:39:47 Warning: Headers already sent in....

エラーの原因としては、header関数によってheaderを指定しているところより前で、echoやprintなどにより標準出力されている場合に発生する様です。
header() 関数は、 通常の HTML タグまたは PHP からの出力にかかわらず、すべての実際の 出力の前にコールする必要があるそう。

PHP: header - Manual

解決するために追加しました

  1. JSON_UNESCAPED_UNICODE 日本語をunicode変換しないでjson_encodeする qiita.com

  2. ob_start(); ob_start();は標準出力自体を取得するための準備であるため、これを呼んでおくと標準出力が内部のバッファに保存されて、headerと干渉しなくなる。 qiita.com