php用gd画图无法显示的解决方法
这篇文章主要介绍了php用gd画图无法显示的解决方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
php用gd画图无法显示的解决办法:1、把文件格式保存为无BOM的utf-8格式;2、利用“ob_clean();”清空缓冲区。
本文操作环境:windows7系统、PHP7.1版,DELL G3电脑
PHP 使用GD 库绘制图像,无法显示的问题
根据官方GD 库绘制图像文档样式
原基本样式
$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的框架:1、Laravel,Laravel是一款免费并且开源的PHP应用框架。2、Phalcon,Phalcon是运行速度最快的一个PHP框架。3、Symfony,Symfony是一款为Web项目准备的PHP框架。4、Yii,Yii是一款快速、安全和专业的PHP框架。5、CodeIgniter,CodeIgniter是一款非常敏捷的开源PHP框架。6、CakePHP,CakePHP是一款老牌的PHP框架。7.Kohana,Kohana是一款敏捷但是功能强大的PHP框架。
感谢你能够认真阅读完这篇文章,希望小编分享的“php用gd画图无法显示的解决方法”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341