去掉 image.php 中 <?php ... ?> 之外的全部内容

解决方案 »

  1.   

    你的php是生成圖片的,但你又加入了其他代碼,<html那些,導致圖片輸出有問題。
    image.php只保留php的部分就好了。
    <?php
    /*
    * 生成图片验证码
    * and open the template in the editor.
    */
    session_start();
    for($i=0;$i<4;$i++){
    $rand.=dechex(rand(1,15)); //生成4位数包含十六进制的随机数
    }
    $_SESSION[check_gd]=$rand;
    $img=imagecreatetruecolor(100,30); //创建图片
    $bg=imagecolorallocate($img,0,0,0); //第一次生成的是背景颜色
    $fc=imagecolorallocate($img,255,255,255); //生成的字体颜色
    //给图片画线
    for($i=0;$i<3;$i++){
    $te=imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));
    imageline($img,rand(0,15),0,100,30,$te);
    }
    //给图片画点
    for($i=0;$i<200;$i++){
    $te=imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));
    imagesetpixel($img,rand()%100,rand()%30,$te);
    }
    //首先要将文字转换成utf-8格式
    //$str=iconv("gb2312","utf-8","呵呵呵");
    //加入中文的验证
    //smkai.ttf是一个字体文件,为了在别人的电脑中也能起到字体作用,把文件放到项目的根目录,可以下载,还有本机C:\WINDOWS\Fonts中有
    imagettftext($img,11,10,20,20,$fc,"simkai.ttf","你好你好");
    //把字符串写在图片中
    //imagestring($img,rand(1,6),rand(3,70),rand(3,16),$rand,$fc);
    //输出图片
    header("Content-type:image/jpeg");
    imagejpeg($img);
    ?>
    另外:imagettftext($img,11,10,20,20,$fc,"simkai.ttf","你好你好");
    simkai.ttf的路徑要對。否則會有warning導致圖片不能輸出。
      

  2.   

    我发现一个问题,只要在Header下面加上ob_clean(); 这句就可以了 请问这是什么原因呢?
      

  3.   

    ob_clean(); 可以把之前緩衝區的數據清除,等於把上面的<html那堆不輸出,那就可以。