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

再上完整的代码吧:

内容编码错误

 1 <?php
 2     // 开启 session
 3     session_start();
 4     
 5     // 丢弃输出缓冲区的内容 **
 6     ob_clean();
 7     
 8     // 1 创建画布
 9     $img = imagecreatetruecolor(100, 30);
10     
11     // 2 画一个矩形并填充
12     $bgcolor = imagecolorallocate($img, mt_rand(120,255), mt_rand(120,255), mt_rand(120,255));
13     imagefilledrectangle($img, 0, 0, 100, 30, $bgcolor);
14     
15     // 3 在画布上进行操作
16     
17     // 3.1 定义字符串
18     $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
19     
20     // 3.2 定义变量,存放验证码
21     $code = '';
22     
23     // 3.2 加载自定义字体
24     $font_file = './comic.ttf';
25     
26     // 3.3 生成文字部分
27     for ($i = 0; $i < 4; $i++) {
28         // 定义字体颜色
29         $fontcolor = imagecolorallocate($img, mt_rand(0, 120), mt_rand(0, 120), mt_rand(0, 120));
30         
31         // 文字内容
32         $content = substr($str, mt_rand(0, strlen($str)-1), 1);
33         
34         // 设置显示坐标
35         $x = ($i * 100 / 4) + mt_rand(5, 10);
36         $y = mt_rand(17, 22);
37         
38         // 把文字填充到画布
39         imagefttext($img, 15, mt_rand(-5, 5), $x, $y, $fontcolor, $font_file, $content);
40         
41         // 将文字内容赋值给 code 变量
42         $code .= $content;
43     }
44     
45     // 3.4 将大写字母转换为小写
46     $code = strtolower($code);
47     
48     // 3.5 给 session 赋值
49     $_SESSION['code'] = $code;
50     
51     // 3.6 设置干扰元素
52     for ($i = 0; $i < 200; $i++) {
53         $pointcolor = imagecolorallocate($img, mt_rand(50, 200), mt_rand(50, 200), mt_rand(50, 200));
54         imagesetpixel($img, mt_rand(1, 99), mt_rand(1, 29), $pointcolor);
55     }
56     
57     // 3.7 设置干扰线
58     for ($i = 0; $i < 3; $i++) {
59         $linecolor = imagecolorallocate($img, mt_rand(50, 200), mt_rand(50, 200), mt_rand(50, 200));
60         imageline($img, mt_rand(1, 99), mt_rand(1, 29), mt_rand(1, 99), mt_rand(1, 29), $pointcolor);
61     }
62     
63     // 4 向浏览器输出图片头信息
64     header('Content-Type:image/png');
65     
66     // 5 输出图片到浏览器
67     imagepng($img);
68     
69     // 6 销毁图片
70     imagedestroy($img);
71 ?>

假若应用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实际上什么内容也不会输出。

当然,ob_clean()
并不可能消除全体的不可能展现的难点,具体难点具体分析,视本身的景况而定。

错过了跟主机的连接。

图片 1

more content

相遇的四个相比较严重的题材,也正是自家没能独立消除的,正是 ob_clean()
那里(注释上加了俩 *
呢),最初是没有那行代码的。当然,现象正是怎么都刷不出图,看了手册也没找到消除办法,最终依旧凭借了度娘,找到了地点的化解办法。(万能的度娘,请收下小编的膝盖)

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

先给个功用图(上面包车型地铁实在是图):

下边就不足为奇了
<?php
error_reporting(E_ALL);
ob_start(“ob_gzhandler”);
echo “content”;
ob_end_clean();
ob_start(“ob_gzhandler”);
echo “more content”;
?>

后天有须要用到验证码,就敲了个,终究用途比较广,所以打算把代码留下来,未来肯定用得上的。当然,昨天在做的时候也是有一对题材的,分享出去呢,记录自身所犯的失实,制止现在再掉坑里。

能够看来more content已经出口

自作者感觉注释照旧相比较详细的吗,反正本身看得懂(马虎疏忽)。

最安静的启用页面压缩的法门应该接近上面
<?php
if(extension_loaded(‘zlib’)) {
ini_set(‘zlib.output_compression’, ‘On’);
ini_set(‘zlib.output_compression_level’, ‘3’);
}
?>

firefox错误码:

 
荒谬原因和解决办法:

error_reporting(E_ALL);
ob_start(“my_ob_gzhandler”);
echo “content”;
ob_clean();
echo “more content”;
?>
地点是常规的,但使用ob_end_clean代替ob_clean后又会促成前边的出口不会议及展览示。

telnet localhost 80
GET /test.php HTTP/1.0
<Enter>
<Enter>

 

相关文章