728x90
반응형
안녕하세요 Binary 연구소입니다.
사이트를 만들다가 처리 중간마다 출력해야 하는 일이 생겼는데, 한 번에 출력이 되더라고요.
그래서 제가 4시간 정도 계속 찾아보다가 방법을 알아냈습니다!
일단 PHP에서 처리 중간에 결과를 전송하려면 flush를 사용하면 됩니다.
예를 들어보죠,
echo '로딩 중!';
flush();
sleep(5);
echo '로딩 끝!';
이렇게 하면 됩니다.
하지만, 이렇게 해도 작동되지 않는다면
echo '로딩 중!';
ob_flush();
flush();
sleep(5);
echo '로딩 끝!';
이런식으로 작성해 보세요.
그래도, 안된다면?
Apache 또는 Nginx 웹서버에서 Output Buffering 옵션을 Off로 설정하세요. (Apache의 경우 )
NGINX에서는 다음과 같이 server 또는 http 블록 아래에 저렇게 적어주시면 됩니다(... 은 그냥 보기 편하라고 있는 겁니다.)
server {
...
fastcgi_buffering off;
proxy_buffering off;
...
}
그래도, 안된다면?
타임아웃 때문에 오류가 발생하는 것 같다면 set_time_limit() 함수를 사용해 PHP 스크립트 실행시간을 충분히 늘려주시면 됩니다.
그래도 안된다면?
오른쪽 하단에 있는 채널톡 버튼으로 Binary 연구소에게 직접 문의하세요.
돈 주고 물어보는 것 아니면 상담원에게는 최소한의 예의 지켜주세요.
728x90
반응형