php无法生成图片怎么办

php无法生成图片的解决办法:1、打开gd2库;2、在生成图片前将所有输出删除掉;3、通过“ob_clean();”来清除输出缓存。

php无法生成图片怎么办

本文操作环境:Windows7系统、PHP7.1版,DELL G3电脑

php无法生成图片怎么办?PHP验证码不能生成图片,原因解决

生成图片时,header(‘Content-type: image/png’);前面不能有输出!!!

或者,前面加:ob_clean(); 即使用输出也可以通过这句来清除输出缓存!很重要!!!

立即学习“PHP免费学习笔记(深入)”;

 当然,首先要打开gd2库,可通过phpinfo查看。清除了bom,代码也是顶行开始写的,因此问题可能出现在代码上。后来经过研究,发现还是要更改一下程序,要在header前面加上ob_clean()这个语句,这样就可以运行了!哈哈,编码调试程序如当医生,百练成刚。

<?php //设置 验证码高度宽度上面字符个数$img_w = 70;$img_h = 22;$font = 5;$char_len = 5;//数组合并, range()函数返回一个范围数组$char = array_merge ( range ( 'a', 'z' ), range ( 'A', 'Z' ), range ( '1', '9' ) );$rand_keys = array_rand ( $char, $char_len ); //随机从数组中取指定个数的元素,生成键值if ($char_len == 1) { //若只有一个数,则array_rand()返回非数组类型         $rand_keys = array ($rand_keys );}shuffle($rand_keys);  //可以不用$code = '';foreach ( $rand_keys as $k ) {         $code .= $char [$k];}session_start ();$_SESSION ['captcha'] = $code; //添加线、色//创建新图像$img = imagecreatetruecolor ( $img_w, $img_h );//分配颜色$bg_color = imagecolorallocate ( $img, 0xcc, 0xcc, 0xcc );//画布背景色imagefill ( $img, 0, 0, $bg_color );//干扰线for($i = 0; $i < 300; ++$i) {         $color = imagecolorallocate ( $img, mt_rand ( 0, 255 ), mt_rand ( 0, 255 ), mt_rand ( 0, 255 ) );         imagesetpixel ( $img, mt_rand ( 0, $img_w ), mt_rand ( 0, $img_h ), $color );}for($i = 0; $i <= 10; ++ $i) {         //设置直线颜色         $color = imageColorAllocate ( $img, mt_rand ( 0, 255 ), mt_rand ( 0, 255 ), mt_rand ( 0, 255 ) );         //在$img图像上随机画一条直线         imageline ( $img, mt_rand ( 0, $img_w ), mt_rand ( 0, $img_h ), mt_rand ( 0, $img_w ), mt_rand ( 0, $img_h ), $color );         //imagesetpixel($img,mt_rand(0,$img_w),mt_rand(0,$img_h),$color);} //加加框$rect_color = imagecolorallocate ( $img, 0x90, 0x90, 0x90 );imagerectangle ( $img, 0, 0, $img_w - 1, $img_h - 1, $rect_color );$str_color = imagecolorallocate ( $img, mt_rand ( 0, 100 ), mt_rand ( 0, 100 ), mt_rand ( 0, 100 ) );$font_w = imagefontwidth ( $font );$font_h = imagefontheight ( $font );$str_len = $font_w * $char_len;imagestring ( $img, $font, ($img_w - $str_len) / 2, ($img_h - $font_h) / 2, $code, $str_color );

登录后复制

设定字符串颜色

$str_color = imageColorAllocate($img, mt_rand(0, 100), mt_rand(0, 100),mt_rand(0, 100));//设定字符串位置$font_w = imageFontWidth($font);  //字体宽$font_h = imageFontHeight($font); //字体高$str_w = $font_w * $char_len;     //字符串宽imageString($img, $font, ($img_w-$str_w)/2, ($img_h-$font_h)/2, $code, $str_color);echo 'ddd'; //输出影响生成图片,查找了大半天的原因终于找到了ob_clean(); //也可以加上这句,这样前面有输出,清除输出缓存//生成图片header ( 'Content-Type: image/png' );//header前不能加任何输出或加ob_clean()清除imagepng($img);//----4 销毁画布imagedestroy($img);

登录后复制

推荐学习:《PHP视频教程》

以上就是php无法生成图片怎么办的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2513301.html

(0)
上一篇 2025年3月5日 15:07:57
下一篇 2025年2月28日 05:26:58

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • php怎么自定义错误提示

    在PHP中可以通过“set_error_handler()”函数自定义错误处理,该函数的作用就是指定另一个函数作为错误处理函数,语法如“set_error_handler(callable $error_handler…)”。 …

    2025年3月5日
    200
  • php中require是什么意思

    在php中,require的意思为“引入文件”,一般用于“包含并运行指定文件”,即在执行流中插入写在其它文件中的有用的代码,语法“require ‘文件名’”。require语句引入文件时,如果碰到错误,会给出提示,…

    2025年3月5日
    200
  • php中的不等运算符是什么和什么

    php中的不等运算符是“!=”、“!==”和“”。“!=”和“”运算符完全等价,没有任何区别,用于比较两个对象的值是否相等;而“!==”运算符表示绝对不等于,除了比较值,还会比较类型。 本教程操作环境:windows7系统、PHP7.1版,…

    2025年3月5日
    200
  • PHP如何使用OpenSSL加密中的证书操作

    本篇文章给大家介绍一下php使用openssl加密中证书操作的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 关于对称和非对称的加密操作,我们已经学习完两篇文章的内容了,接下来,我们就继续学习关于证书的生成。 生成 …

    2025年3月5日
    200
  • PHP如何使用OpenSSL加密中的非对称加密

    本篇文章给大家介绍一下php使用openssl加密中非对称加密的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 上篇文章,我们了解了关于对称和非对称加密的一些相关的理论知识,也学习了使用 OpenSSL 来进行对称加…

    2025年3月5日
    200
  • php怎么比较字符串(不区分大小写)

    PHP不区分大小写比较字符串的方法:1、使用“strcasecmp(字符串1,字符串2)”语句;2、使用“strnatcasecmp(字符串1,字符串2)”语句;3、使用“strncasecmp(字符串1,字符串2,length)”语句。 …

    2025年3月5日
    200
  • 如何使用PHP中的runkit扩展

    本篇文章给大家介绍一下使用php中的runkit扩展的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 这次又为大家带来一个好玩的扩展。我们知道,在 PHP 运行的时候,也就是部署完成后,我们是不能修改常量的值,也不能…

    2025年3月5日
    200
  • php数组替换函数有哪些

    php数组替换函数有:1、array_replace()函数,使用后面数组的值替换第一个数组的值;2、array_replace_recursive()函数,递归地使用后面数组的值替换第一个数组的值;3、array_splice()函数。 …

    2025年3月5日
    200
  • php小数怎么转为整数

    方法:1、使用floor()函数向下舍入为最接近的整数,语法“floor (小数)”;2、使用ceil()函数向上舍入为最接近的整数,语法“ceil(小数)”;3、使用round()函数对浮点数进行四舍五入,语法“round(小数)”。 本…

    2025年3月5日
    200
  • php和java语法上的区别是什么

    区别:1、PHP支持“//”、“#”和“/**/”注释方式,java支持“//”、“/**/”和“/***/”注释方式。2、java中所有函数名、关键字、类、变量等都是大小写敏感;PHP不是。3、PHP是弱引用类型,java是强引用类型等。…

    2025年3月5日
    200

发表回复

登录后才能评论