php imagepng无法显示怎么办

php imagepng无法显示的解决办法:1、用第三方编码工具把文件格式保存为无BOM的utf-8格式;2、利用“ob_clean();”清空缓冲区。

php imagepng无法显示怎么办

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

php imagepng无法显示怎么办?

PHP 使用GD 库绘制图像,无法显示的问题

根据官方GD 库绘制图像文档样式

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

原基本样式:

$width = 120;$height = 50;$img = @imagecreatetruecolor($width, $height) or die('Cannot Initialize new GD image stream');;//新建一个GD图像资源$img_bgcolor = imagecolorallocate($img, mt_rand(157,255), mt_rand(157,255), mt_rand(157,255));//背景色$img_textcolor = imagecolorallocate($img, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));//字体颜色$img_rectangle = imagefilledrectangle($img,0,0,$width, $height,$img_bgcolor);//画一个矩形图像imagestring($img, 1, 5, 5, 'A Simple Text String', $img_textcolor);// 输出图像header("Content-type:image/png");imagepng($img);imagedestroy($img);//销毁图像

登录后复制

 

 

但在实际运用中会出现无法正常显示图像的问题:

出现的原因可能有以下几种情况:

  原因1:文件编码格式带有BOM 头,解决方法,用第3方编码工具,sublime 或 notepad++ 等把 文件格式保存为无BOM 的utf-8 格式

  原因2:PHP缓冲区的问题,解决方法利用 ob_clean();清空缓冲区。

 

常用缓冲区函数 ob 函数

参考:http://php.net/manual/zh/ref.outcontrol.php

ob_get_contents() – 返回输出缓冲区的内容

ob_flush() – 冲刷出(送出)输出缓冲区中的内容

ob_clean() – 清空(擦掉)输出缓冲区

ob_end_flush() – 冲刷出(送出)输出缓冲区内容并关闭缓冲

ob_end_clean() – 清空(擦除)缓冲区并关闭输出缓冲

flush() – 刷新输出缓冲

 

判断GD库是否安装

function_exists(‘imagecreate’) 通过判断扩展库提供的方法是否存在来判断get_extension_funcs() ,但不全面,不推荐该方式(因为有些扩展是没有提供函数的)

in_array(‘扩展名’, get_loaded_extensions()) 通过验证扩展是否在已加载的扩展中来判断是否安装(全面,但不简练)

extension_loade(‘扩展库名’) 通过判断扩展库是否加载来验证(全面,且不简练,推荐使用该方式来验证扩展是否安装加载)

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

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

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

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

(0)
上一篇 2025年2月24日 12:02:07
下一篇 2025年2月24日 12:02:20

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

相关推荐

发表回复

登录后才能评论