[PHP/Codeigniter] CI에서 $this->output->set_header()가 작동하지 않을 때

in php •  7 years ago 

※ 이미 알고있었지만 까먹고 어제 헤맷던 사례가 있어 적어두기

Codeigniter에서는 자체적으로 제공하는 output 클래스가 있습니다.
가끔 저같은 사람들이 output으로 header를 지정해놓고 출력물을 출력한 뒤 exit()으로 종료시켜버리는 경우가 있는데요.

이런 경우에는 정상적으로 php 소스 코드가 끝나는 것이 아니라 중간에 '난 탈출할꺼야! 안녕!'하고 꺼버리는 것이기 때문에 정상적으로 출력되지 않습니다.

예전에 한번 이 문제로 엄청 고생했었는데 바보같이 또 같은 짓을 해놨네요.

특정 상황에서 모든 실행을 중단하고 exit을 하고 싶다면 아래 같이 $this->output->_display();를 실행해주세요

# Example 01.

$this->output
        ->set_status_header(200)
        ->set_content_type('application/json', 'utf-8')
        ->set_output(json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES))
        ->_display();

만약에 출력하는 내용을 오버라이드(override)하고 싶으면 $this->output->_display($var);로 파라미터로 넘기는 변수에 String 데이터를 넣어주시면 됩니다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!