firefox提示:内容编码错误 无法显示您尝试查看的页面
今天打帮客户整理一个网站时发现在firefox提示:内容编码错误 无法显示您尝试查看的页面,因为它使用了无效或者不支持的压缩格式了,我一看客户是php站,导致原因可能是ob_gzhandler原因,下面我来总结了解决办法。
firefox错误码:
内容编码错误
无法显示您尝试查看的页面,因为它使用了无效或者不支持的压缩格式。
请联系网站的所有者以告知此问题
错误原因和解决办法:
1、保证php程序没有任何警告或出错的提示
2、PHP代码ob_start('ob_gzhandler')导致的,导致的原因有两种:
a、服务器不支持这种压缩格式,可使用function_exists('ob_gzhandler')判断,解决方法 ob_start('ob_gzhandler')改为ob_start();
b、使用ob_start('ob_gzhandler')时候前面已经有内容输出,检查前面内容以及require include调用文件的内容。若无法找到可以在调用其它文件前使用ob_start(),调用之后使用 ob_end_clean () 来清除输出的内容;
3、set_magic_quotes_runtime()函数:
提示:Function set_magic_quotes_runtime() is deprecated,导致这个提示的原因是在PHP5.3后此特性已经关闭,在PHP6中已经完全移除此特性,也就是这个函数已经不存在了。你可以注释 或者删除掉出错的行,或者是在set_magic_quotes_runtime()前面加@符号。
4、PHP5.30版本,默认不再支 持这样的语法,输出变量需使用php echo $username;?>语法才可以。你可以通过将 php.ini 中的 short_open_tag 设置为 On,以兼容原来的语法。
php关于ob_start('ob_gzhandler')启用GZIP压缩的bug
如果使用ob_start("ob_gzhandler");
则ob_clean()后面的输出将不显示,这是个bug,
可以用ob_end_clean();ob_start("ob_gzhandler"); 代替ob_clean();
否则后面输出内容将是空。
error_reporting(E_ALL);
ob_start("ob_gzhandler");
echo "content";
ob_clean();
echo "more content";
?>
上面的代码期望输出more content实际上什么内容也不会输出。
下面就正常了
error_reporting(E_ALL);
ob_start("ob_gzhandler");
echo "content";
ob_end_clean();
ob_start("ob_gzhandler");
echo "more content";
?>
下面自定义一个回调函数再测试
function my_ob_gzhandler($buffer,$mod){
header("Content-Encoding: gzip");
return gzencode($buffer, 9, FORCE_GZIP);
}
error_reporting(E_ALL);
ob_start("my_ob_gzhandler");
echo "content";
ob_clean();
echo "more content";
?>
上面是正常的,但使用ob_end_clean代替ob_clean后又会导致后面的输出不会显示。
因此即使是下面的代码依然会在使用ob_clean或者ob_end_clean后会导致输出为空。
if (ini_get('zlib.output_compression')) {
if (ini_get('zlib.output_compression_level') != 9) {
ini_set('zlib.output_compression_level', '9');
}
ob_start();
} else {
if (strstr($_SERVER['HTTP_ACCEPT_ENCODING'], "gzip")) {
ob_start("ob_gzhandler");
} else {
ob_start();
}
}
?>
最稳定的启用页面压缩的方法应该类似下面
if(extension_loaded('zlib')) {
ini_set('zlib.output_compression', 'On');
ini_set('zlib.output_compression_level', '3');
}
?>
但如果一定要使用ob_gzhandler来启用页面压缩就要注意本文的第一句话了。
事实上,下面的代码只是浏览器不显示
error_reporting(E_ALL);
ob_start("ob_gzhandler");
echo "content";
ob_clean();
echo "more content";
但如果测试一下
telnet localhost 80
GET /test.php HTTP/1.0
将会返回如下信息
HTTP/1.1 200 OK
Date: Fri, 20 Feb 2009 15:40:17 GMT
Server: Apache/2.2.6 (Win32) PHP/5.2.5
X-Powered-By: PHP/5.2.5
Vary: Accept-Encoding
Content-Length: 12
Connection: close
Content-Type: text/html
more content
失去了跟主机的连接。
可以看出more content已经输出

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Google Chrome에서 이 탭의 콘텐츠가 공유되고 있다는 메시지가 표시되면 어떻게 해야 하나요? Google Chrome을 사용하여 새 탭을 열 때 가끔 이 탭의 콘텐츠가 공유되고 있다는 메시지가 표시됩니다. 무슨 일이 일어나고 있는 걸까요? 이 사이트는 이 탭의 콘텐츠가 공유되고 있다는 메시지를 표시하는 Google Chrome 문제에 대한 자세한 소개를 사용자에게 제공합니다. Google Chrome에서는 이 탭의 콘텐츠가 공유된다는 메시지를 표시합니다. 해결 방법: 1. Google Chrome을 엽니다. "Google Chrome 사용자 정의 및 제어" 아이콘을 클릭하면 변경됩니다. 아이콘. 2. 클릭하면 아래에 구글 크롬 메뉴창이 뜨고, 마우스가 '도구 더보기'로 이동합니다.

프린터를 사용할 때 작업을 완료할 수 없습니다(오류 0x00000771) 등의 오류 메시지가 표시되면 프린터 연결이 끊어졌기 때문일 수 있습니다. 이런 경우에는 다음 방법을 통해 문제를 해결할 수 있습니다. 이 기사에서는 Windows 11/10 PC에서 이 문제를 해결하는 방법에 대해 설명합니다. 전체 오류 메시지는 다음과 같습니다. 작업을 완료할 수 없습니다(오류 0x0000771). 지정된 프린터가 삭제되었습니다. Windows PC에서 0x00000771 프린터 오류 수정 작업을 완료할 수 없는 프린터 오류(오류 0x0000771)를 수정하려면 지정된 프린터가 Windows 11/10 PC에서 삭제되었습니다. 다음 해결 방법을 따르십시오. 인쇄 스풀을 다시 시작하세요.

목차 해결 방법 1 해결 방법 21. Windows 업데이트의 임시 파일 삭제 2. 손상된 시스템 파일 복구 3. 레지스트리 항목 보기 및 수정 4. 네트워크 카드 IPv6 끄기 5. WindowsUpdateTroubleshooter 도구를 실행하여 복구 6. 방화벽 끄기 및 기타 관련 바이러스 백신 소프트웨어. 7. WidowsUpdate 서비스를 닫습니다. 해결 방법 3 해결 방법 4 Huawei 컴퓨터에서 Windows 업데이트 중 "0x8024401c" 오류가 발생함 증상 문제 원인 해결 방법 아직도 해결되지 않았습니까? 최근 시스템 취약점으로 인해 웹 서버를 업데이트해야 하는데, 서버에 로그인하면 업데이트 시 오류 코드 0x8024401c가 표시됩니다.

표시 오류는 Xiangxiang Fuzhai 앱에서 발생할 수 있는 문제입니다. 일부 사용자는 Xiangxiang Fuzhai 앱에서 오류가 표시되는 이유를 잘 모르겠습니다. 이는 네트워크 연결 문제, 너무 많은 백그라운드 프로그램, 잘못된 등록 정보 등이 원인일 수 있습니다. 사용자를 위한 앱 표시 오류 해결 방법에 대한 편집자의 소개입니다. 관심 있는 사용자는 꼭 들러보세요! Xiangxiang Fuzhai 앱에 오류 답변이 표시되는 이유: 네트워크 연결 문제, 너무 많은 백그라운드 프로그램, 잘못된 등록 정보 등 세부 정보: 1. [네트워크 문제] 해결책: 장치 연결 네트워크 상태를 확인하고 다시 연결하거나 다른 네트워크 연결을 선택하십시오. 사용할 수 있습니다. 2. [백그라운드 프로그램이 너무 많습니다.] 해결 방법: 실행 중인 다른 프로그램을 닫고 시스템을 해제하면 소프트웨어 실행 속도가 빨라질 수 있습니다. 3. [잘못된 등록정보

LinuxOops: 이 오류의 의미에 대한 자세한 설명, 특정 코드 예제가 필요합니다. LinuxOops란 무엇입니까? Linux 시스템에서 "죄송합니다"는 커널의 심각한 오류로 인해 시스템이 충돌하는 상황을 의미합니다. 죄송합니다. 실제로는 치명적인 오류가 발생할 때 시스템을 중지하고 개발자가 문제를 진단하고 수정할 수 있도록 관련 오류 정보를 인쇄하는 커널 충돌 메커니즘입니다. 이런 문제는 일반적으로 커널 공간에서 발생하며 사용자 공간 응용 프로그램과는 아무 관련이 없습니다. 커널이 만났을 때

CheatEngine은 게임의 메모리를 편집하고 수정할 수 있는 게임 편집기입니다. 그러나 기본 언어는 중국어가 아니므로 많은 친구들에게 불편을 줍니다. 그렇다면 CheatEngine에서 중국어를 설정하는 방법은 무엇입니까? 오늘은 에디터가 CheatEngine에서 중국어를 설정하는 방법에 대해 자세히 소개하겠습니다. 도움이 되셨으면 좋겠습니다. 설정 방법 1: 1. 두 번 클릭하여 소프트웨어를 열고 왼쪽 상단에 있는 "편집"을 클릭합니다. 2. 그런 다음 아래 옵션 목록에서 "설정"을 클릭하세요. 3. 열리는 창의 왼쪽 열에서 "언어"를 클릭하세요.

Baidu Tieba 앱은 작업이 너무 자주 발생한다는 메시지를 표시합니다. 이 메시지는 일반적으로 플랫폼의 정상적인 작동과 사용자 경험을 유지하고 악의적인 화면 스팸, 광고 스팸 및 기타 부적절한 동작을 방지하기 위한 것입니다. 편집자님이 공유해 주셨습니다. Baidu Tieba 앱에서 작업이 너무 빈번하다는 메시지가 표시됩니다. 처리 방법 공유 1. 시스템에서 [작업이 너무 빈번합니다]라는 메시지가 표시되면 잠시 기다려야 합니다. 불안한 경우 먼저 다른 작업을 수행하면 됩니다. 일반적으로 잠시 기다리면 이 프롬프트 메시지가 자동으로 사라지며 정상적으로 사용할 수 있습니다. 2. 오랜 시간을 기다린 후에도 여전히 [Operation Too 빈번함]이 표시되면 Tieba Emergency Bar, Tieba Feedback Bar 및 기타 공식 Tieba에 게시하여 이 현상을 보고하고 공식 직원에게 해결을 요청할 수 있습니다. 삼.

"CSS를 올바르게 표시하기 위해 Laravel 페이지의 오류를 처리하는 방법, 구체적인 코드 예제가 필요합니다." Laravel 프레임워크를 사용하여 웹 애플리케이션을 개발할 때 페이지가 CSS 스타일을 올바르게 표시하지 못하는 문제에 직면할 때가 있습니다. 비정상적인 스타일을 렌더링하는 페이지입니다. 이 글에서는 Laravel 페이지가 CSS를 올바르게 표시하지 못하는 문제를 해결하는 몇 가지 방법을 소개하고 개발자가 이 일반적인 문제를 해결하는 데 도움이 되는 특정 코드 예제를 제공합니다. 1. 파일 경로를 확인하세요. 먼저 CSS 파일의 경로를 확인하세요.
