2016-09-05 4 views
0

私は説明できない奇妙な問題に直面しました。 環境:codeigniterが空白ページを送信

  • のUbuntu 16.04
  • nginxの1.10のphp-FPM
  • PHP 7.0.8

とだから私は、ApacheとPHP5でホストされたサーバーから、この新しいサーバーに移行。 最初のテストは成功しました。ページは走っていて、うまくいっていたようだ。

次に、いくつかのページを呼び出せないという問題が発生しました。 HTTP応答は200でしたが、ページは空白でした。 Chromeはネット私に言った:: ERR_CONTENT_DECODING_FAILED

を私は非コントローラが最後にjson_encode()をエコーすることを、ワーキングページと空白のページの間に差があったことが、分かりました。

これは私のコントローラである:

public function some_controller() 
{ 
    $result = ["test" => "abcde"]; 
    echo json_encode($result); 
} 

これはネットで終了します:: ERR_CONTENT_DECODING_FAILED

は、これが私のworkarroundです:だから次

public function some_controller() 
{ 
    $result = ["test" => "abcde"]; 
    echo json_encode($result); 
    exit(); 
} 

は不明である:

  1. なぜ私は終了しなければならない()私のコントローラは今?
  2. コントローラ機能がパスされた後CIとは何ですか?
  3. なぜApacheとPHP5で動作していたのですか?今何が違うの?

私は自分自身で問題を発見し、あなたのすべての

+0

閉じるPHPタグがある場合はファイルから削除します。 – Tpojka

+0

最初のコードは正常に動作します。 – Benyi

答えて

0

ありがとうございます。 php7.0-xmlのインストール後に問題が解決しました。

xmlモジュールがJSON応答に必要な理由は誰にでも分かりますか? JSONではないかもしれませんが、それはXMLモジュールを必要とするコードです(コントローラーを渡した後)?

関連する問題