为了账号安全,请及时绑定邮箱和手机立即绑定

php验证码生成图像失败,在header前加上ob_clean()能正确输出,为什么呢?代码如下

php验证码生成图像失败,在header前加上ob_clean()能正确输出,为什么呢?代码如下

PHP
qq_雨月残寒_0 2016-04-13 17:57:17
<?php session_start();require'string.func.php';$width = 80;$height=20;$image = imagecreatetruecolor ( $width, $height );$white = imagecolorallocate ( $image, 255, 255, 255 );$black = imagecolorallocate ( $image, 0, 0, 0 );imagefilledrectangle ( $image, 1, 1, $width - 2, $height - 2, $white );$type=3 ;$length=6;$chars =buildRandomString($type,$length);$sess_name="verify";$_SESSION [$sess_name] = $chars; $fontfiles=array("FZLTCXHJW.TTF","simfang.ttf","simhei.ttf");  for($i = 0; $i < $length; $i++) { $size = mt_rand ( 14, 18 ); $angle = mt_rand ( - 15, 15 ); $x = 5 + $i * $size; $y = mt_rand ( 20, 26 ); $fontfile = "../fons/" . $fontfiles [mt_rand ( 0, count ( $fontfiles ) - 1 )]; $color = imagecolorallocate ( $image, mt_rand ( 50, 90 ), mt_rand ( 80, 200 ), mt_rand ( 90, 180 ) ); $text = substr ( $chars, $i, 1 ); imagettftext ( $image, $size, $angle, $x, $y, $color, $fontfile, $text ); }  ob_clean();header ( "content-type:image/gif" ); imagegif ( $image ); imagedestroy ( $image ); 
查看完整描述

3 回答

?
hxh_kylin

TA贡献33条经验 获得超10个赞

ob_clean这个函数的作用就是用来丢弃输出缓冲区中的内容,如果你的网站有许多生成的图片类文件,那么想要访问正确,就要经常清除缓冲区。

If you work on an extremely large project with a lot of source and required files, like myself, you will be well-advised to always clear the output buffer prior to creating an image in php.

查看完整回答
1 反对 回复 2016-04-14
?
qq_青枣工作室_0

TA贡献446条经验 获得超754个赞

可能是你的<?php 前面有空格或者空行之类的

查看完整回答
1 反对 回复 2016-04-14
  • 3 回答
  • 0 关注
  • 2758 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信