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已经输出

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Was soll ich tun, wenn Google Chrome meldet, dass der Inhalt dieses Tabs geteilt wird? Wenn wir Google Chrome verwenden, um einen neuen Tab zu öffnen, stoßen wir manchmal auf die Meldung, dass der Inhalt dieses Tabs geteilt wird. Was ist also los? Auf dieser Website erhalten Benutzer eine detaillierte Einführung in das Problem, dass Google Chrome dazu auffordert, den Inhalt dieser Registerkarte zu teilen. Google Chrome weist darauf hin, dass der Inhalt dieser Registerkarte freigegeben wird: 1. Öffnen Sie Google Chrome. In der oberen rechten Ecke des Browsers werden drei Punkte angezeigt. Klicken Sie zum Ändern auf das Symbol das Symbol. 2. Nach dem Klicken wird unten das Menüfenster von Google Chrome angezeigt und die Maus bewegt sich zu „Weitere Tools“.

Wenn bei der Verwendung Ihres Druckers eine Fehlermeldung angezeigt wird, z. B. dass der Vorgang nicht abgeschlossen werden konnte (Fehler 0x00000771), liegt dies möglicherweise daran, dass die Verbindung zum Drucker getrennt wurde. In diesem Fall können Sie das Problem mit den folgenden Methoden lösen. In diesem Artikel besprechen wir, wie Sie dieses Problem auf einem Windows 11/10-PC beheben können. Die gesamte Fehlermeldung lautet: Der Vorgang konnte nicht abgeschlossen werden (Fehler 0x0000771). Der angegebene Drucker wurde gelöscht. Beheben Sie den Druckerfehler 0x00000771 auf einem Windows-PC. Um den Druckerfehler zu beheben, konnte der Vorgang nicht abgeschlossen werden (Fehler 0x0000771). Der angegebene Drucker wurde auf einem Windows 11/10-PC gelöscht. Befolgen Sie diese Lösung: Starten Sie die Druckspule neu

Inhaltsverzeichnis Lösung 1 Lösung 21. Löschen Sie die temporären Dateien von Windows Update 2. Reparieren Sie beschädigte Systemdateien 3. Anzeigen und Ändern von Registrierungseinträgen 4. Schalten Sie die IPv6-Netzwerkkarte aus 5. Führen Sie das WindowsUpdateTroubleshooter-Tool zur Reparatur aus 6. Schalten Sie die Firewall aus und andere verwandte Antivirensoftware. 7. Schließen Sie den WidowsUpdate-Dienst. Lösung 3 Lösung 4 „0x8024401c“-Fehler tritt während des Windows-Updates auf Huawei-Computern auf Symptom Problem Ursache Lösung Immer noch nicht gelöst? Vor kurzem musste der Webserver aufgrund von Systemschwachstellen aktualisiert werden. Nach der Anmeldung am Server wird der Fehlercode 0x8024401c angezeigt

Der Anzeigefehler ist ein Problem, das in der Xiangxiang Fuzhai-App auftreten kann. Einige Benutzer sind sich nicht sicher, warum die Xiangxiang Fuzhai-App Fehler anzeigt. Dies kann an Netzwerkverbindungsproblemen, zu vielen Hintergrundprogrammen, falschen Registrierungsinformationen usw. liegen. Dies ist die Einführung des Herausgebers zur Behebung von App-Anzeigefehlern für Benutzer. Interessierte Benutzer sollten vorbeikommen und einen Blick darauf werfen! Warum zeigt die Xiangxiang Fuzhai-App eine Fehlerantwort an: Netzwerkverbindungsproblem, zu viele Hintergrundprogramme, falsche Registrierungsinformationen usw. Details: 1. [Netzwerkproblem] Lösung: Überprüfen Sie den Netzwerkstatus der Geräteverbindung, stellen Sie die Verbindung erneut her oder wählen Sie eine andere Netzwerkverbindung aus benutzen können. 2. [Zu viele Hintergrundprogramme] Lösung: Schließen Sie andere laufende Programme und geben Sie das System frei, was die Ausführung der Software beschleunigen kann. 3. [Falsche Registrierungsinformationen

LinuxOops: Detaillierte Erklärung der Bedeutung dieses Fehlers, spezifische Codebeispiele erforderlich. Was ist LinuxOops? In Linux-Systemen bezieht sich „Ups“ auf eine Situation, in der ein schwerwiegender Fehler im Kernel zum Absturz des Systems führt. Oops ist eigentlich ein Kernel-Absturzmechanismus, der das System stoppt, wenn ein schwerwiegender Fehler auftritt, und relevante Fehlerinformationen ausgibt, damit Entwickler das Problem diagnostizieren und beheben können. Hoppla treten normalerweise im Kernel-Space auf und haben nichts mit User-Space-Anwendungen zu tun. Wenn der Kernel auftrifft
![Streaming-Server löst Fehler aus [BEHOBEN]](https://img.php.cn/upload/article/000/465/014/171133083740341.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
Bekommt ein Streaming-Server einen Fehler auf Ihrem Computer? Stremio ist ein plattformübergreifender Video-Streaming-Dienst, mit dem Sie Filme, Fernsehsendungen, Live-TV und mehr streamen und ansehen können. Einige Benutzer haben berichtet, dass sie beim Versuch, die Anwendung zu starten, diesen Fehler erhalten. Fehler können unter verschiedenen Umständen auftreten, einschließlich Internet- und Serverproblemen. Dieser Fehler kann auch bei Verwendung der Webversion von Stremio auftreten. Auch Eingriffe von Antivirensoftware oder Firewalls können zu Fehlern führen. In jedem Fall können Sie das Problem mit dieser Anleitung beheben. Beim Ausführen der Stremio-Anwendung unter Windows kann der Fehler „Stremio Streaming Server hat einen Fehler ausgelöst“ auftreten

Titel: Implementierungsmethode des Seitensprungs in 3 Sekunden: PHP-Programmierhandbuch In der Webentwicklung ist der Seitensprung eine übliche Operation. Im Allgemeinen verwenden wir Meta-Tags in HTML- oder JavaScript-Methoden, um zu Seiten zu springen. In bestimmten Fällen müssen wir jedoch Seitensprünge auf der Serverseite durchführen. In diesem Artikel wird erläutert, wie Sie mithilfe der PHP-Programmierung eine Funktion implementieren, die innerhalb von 3 Sekunden automatisch zu einer bestimmten Seite springt, und es werden auch spezifische Codebeispiele aufgeführt. Das Grundprinzip des Seitensprungs mit PHP ist eine Art
![Outlook besteht darauf, eine Verbindung herzustellen [Fix]](https://img.php.cn/upload/article/000/465/014/171029292689611.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
In diesem Artikel werden die Schritte erläutert, die Sie ergreifen können, um Situationen zu beheben, in denen Outlook beim Versuch, eine Verbindung herzustellen, hängen bleibt. Unabhängig von der Version von Microsoft Office, einschließlich Microsoft 365, kann dieses Problem auftreten. Dieses Problem führt dazu, dass die Outlook-Desktopanwendung E-Mails nicht ordnungsgemäß empfangen kann. Daher ist es wichtig, dieses Problem zu beheben. Behebung, dass Outlook beim Versuch, eine Verbindung herzustellen, hängen bleibt. Wenn Outlook Probleme beim Herstellen einer Verbindung hat und Sie feststellen, dass Sie in der Desktop-App keine neuen E-Mails empfangen, können die folgenden Vorschläge möglicherweise zur Behebung des Problems beitragen. Bevor Sie diese Methoden ausprobieren, prüfen Sie, ob Ihre Internetverbindung ordnungsgemäß funktioniert. Versuchen Sie manchmal, Ihren Router neu zu starten
