【问题】做图片验证码时乱码了,在header前加上ob_clean()就能神奇的显示?!

源代码如下:

 1 <?php
 2    //图片验证码 
 3    // 该方法必须处于脚本最顶部
 4    session_start();
 5    // 验证码图片和对应的验证值的对应关系
 6    $table = array(
 7      'pic0' => '博美',
 8      'pic1' => '仓鼠',
 9      'pic2' => '萨摩',
10      'pic3' => '泰迪',
11        );
12 
13    $index = rand(0,3);
14     
15    $value = $table['pic'.$index];
16    // 随机验证码图片对应的验证值
17    $_SESSION['authcode'] = $value;
18     
19    // 验证码图片的地址
20    $filename = dirname(_FILE_).'\pic'.$index.'.jpg';
21    $contents = file_get_contents($filename);
22    
23    // 一开始图片不显示,显示一堆乱码,加上这句就好了!
24    ob_clean();
25 
26    header('Content-Type:image/jpeg');
27    echo $contents;
28 
29 ?>

查了一下文档,它是这样说的,可是我还是不知道它在说什么咧~!

void ob_clean ( void )

此函数用来丢弃输出缓冲区中的内容。

此函数不会销毁输出缓冲区,而像 ob_end_clean() 函数会销毁输出缓冲区。

原文地址:https://www.cnblogs.com/rosestudy/p/4905664.html