firefox提示:内容编码错误 无法显示您尝试查看的页面

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();
否则后面输出内容将是空。
<?php
error_reporting(E_ALL);
ob_start("ob_gzhandler");
echo "content";
ob_clean();
echo "more content";
?>
上面的代码期望输出more content实际上什么内容也不会输出。

下面就正常了
<?php
error_reporting(E_ALL);
ob_start("ob_gzhandler");
echo "content";
ob_end_clean();
ob_start("ob_gzhandler");
echo "more content";
?>

下面自定义一个回调函数再测试
<?php
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后会导致输出为空。
<?php
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();
   }
}
?>

最稳定的启用页面压缩的方法应该类似下面
<?php
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
<Enter>
<Enter>

将会返回如下信息

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

 

时间: 2024-09-16 08:45:43

firefox提示:内容编码错误 无法显示您尝试查看的页面的相关文章

firefox出现内容编码错误

使用php的程序用浏览器访问出现firefox提示 内容编码错误 无法显示您尝试查看的页面,因为它使用了无效或者不支持的压缩格式,而在ie下就是'该页无法显示',使用了ThinkPHP框架,一直不知道是什么原因,后来一步一步排查,原来是程序里使用了ob_start('ob_gzhandler')导致的. 而解决这个问题,其实很简单,以下二个问题可能导致此问题产生的. 1.服务器不支持这种压缩格式,可使用function_exists('ob_gzhandler')判断,解决方法 ob_start

解决Django1.6访问static内容编码错误的办法

今天用Django搭建一个环境,在访问后台的时候感觉有点怪: 感觉后台页面的样式似乎没有被加载进来,于是单独打开某个样式结果浏览器提示: A server error occurred.  Please contact the administrator. 命令行: Traceback (most recent call last):   File "D:Python27libwsgirefhandlers.py", line 85, in run     self.result =

jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容_jquery

本示例实现easyui datagrid加载/查询数据时,如果没有相关记录,则在datagrid中显示没有相关记录的提示信息,效果如下图所示 本实例要实现如下图所示的效果: 本示例easyui版本为1.3.4,如果运行后没有效果,自己检查easyui版本 不同版本对appendRow和mergeCells支持不一样,参数不一致什么的. 无法隐藏分页导航容器,可以用chrome开发工具或者firebug查看分页导航容器的样式和原始datagrid table表格的关系. 源代码如下 $(funct

jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容_jquery

onLoadSuccess : function(data) { if(!data.success){ //添加一个新数据行,第一列的值为你需要的提示信息,然后将其他列合并到第一列来,注意修改colspan参数为你columns配置的总列数 $(this).datagrid( 'appendRow', { portId : '<div style="text-align:center;color:red">'+data.msg+'</div>' }).datag

关于Apache默认编码错误 导致网站乱码的解决方案_Linux

最近经常有同学在使用LAMP/WAMP时,遇到这样的编码错误问题: A网站程序编码UTF-8编码安装成功,运行成功. B网站程序编gb2312也要安装在同一服务器上. 这样就出现问题了,Apache默认编码UTF-8在解析A网站的时候没有任何问题,当运行B网站时出现的"蝌蚪文"乱码问题. 单纯的修改Apache默认编码为gb2312这样就导致A网站出现"蝌蚪文". 问题分析: 如果你在网上搜索 "apache配置",搜到的页面大多都会建议你在ht

asp上传图片提示 ADODB.Stream 错误 &#039;800a0bbc&#039;的解决方法

  asp上传图片提示 ADODB.Stream 错误 '800a0bbc' 有这个提示有很多问题导致.权限是常见一种.这个不多说,还有一个有点怪的就是 windows2008显示系统时间的格式竟然是:2013/3/8,而并非是以前的2013-3-8,由于重命名上传的文件是按时间来命名的,本要求为201338,但到windows2008平台上最后变成了2013/3/8,这样则会有一个问题,就是会被当成文件夹和路径处理,最终会导致了真正的不存在目录,最后会写入出错. 解决办法: 经过查看在上传保存

windows7提示“一个意外错误使您无法复制该文件”怎么办

windows7提示"一个意外错误使您无法复制该文件"怎么办   1.右击打开连接的移动硬盘的属性,切换到"工具"选项卡,点击查错中的"开始检查"按钮; 2.在弹出的窗口中,要勾选"自动修复文件系统错误"和"扫描并尝试恢复坏扇区"两个选项,然后点击"开始"; 3.检查结束后会提示"已发现一些问题,并已修复"; 4.如果想知道具体出现什么问题,可以单击"查看详

win8.1安装Flash插件提示安装遇到错误怎么办

  win8.1操作系统播放视都需要有flash play插件的支持,最近有些用户说在win8.1系统中无法播放视频,所以安装最新版Flash插件时提示安装遇到错误:浏览器包含最新版本的内置 Adobe Flash Player,怎么办呢?出现这样的情况说明系统中已经安装了flash play ,是由于ie加载项未开启导致的.下面小编给大家分享下解决方法. 具体步骤: 1.首先打开IE,点击"工具"-"关于 Internet Explorer ",查看IE的版本是最

WannaCry的一个编码错误,也许能帮我们恢复加密文件

卡巴斯基实验室针对WannaCry代码进行深入分析,发现WannaCry里面的各种变成错误,这样一来感染的人就有可能进行文件恢复了. 就在上个月,这个名叫WannaCry的勒索软件仅在72小时不到的时间里通过其自我传播功能感染了全球超过三十万台存在漏洞的Windows PC,但这并不意味着WannaCry是一款高质量的勒索软件. 近期,来自卡巴斯基实验室的安全研究专家在对WannaCry的代码进行了深入分析之后发现,WannaCry勒索软件蠕虫的恶意代码中存在大量的编码错误,而这些编码错误将有可