브라우저에서 PHP를 사용하여 프로그램에 액세스하면 Firefox에서 유효하지 않거나 지원되지 않는 압축 형식을 사용하기 때문에 콘텐츠 인코딩 오류를 표시할 수 없다는 메시지가 나타납니다. ThinkPHP 프레임워크를 사용하면서 원인을 전혀 알 수 없었습니다. 나중에 단계별로 확인해보니 프로그램에서 ob_start('ob_gzhandler')를 사용했기 때문에 발생했습니다.
이 문제를 해결하는 것은 실제로 매우 간단합니다. 다음 두 가지 문제로 인해 이 문제가 발생할 수 있습니다.
1. 서버는 이 압축 형식을 지원하지 않습니다. function_exists('ob_gzhandler')를 사용하여 판단할 수 있습니다. 해결 방법은 ob_start('ob_gzhandler')를 ob_start()로 변경하는 것입니다.
2. ob_start('ob_gzhandler') 사용시 이전 내용이 출력되었으며, require 호출 파일의 내용을 확인합니다. 찾을 수 없으면 다른 파일을 호출하기 전에 ob_start()를 사용하고, 다른 파일을 호출한 후에 ob_end_clean()을 사용하여 출력 내용을 지울 수 있습니다.
제가 만난 오류는 ob_start 이전에 출력 내용이 있기 때문입니다. 이것이 바로 프로그램이 실행될 수 없는 이유입니다.