<?php
ob_clean();
header("Content-type:image/png");
$img = imagecreate(210, 47);
imagecolorallocatealpha($img, 220, 220, 220, 0);
$str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
$fontFile = './STLITI.TTF';
$red = imagecolorallocate($img, 255, 0, 0);
$blur = imagecolorallocate($img, 0, 0, 255);
for($i = 0 ; $i < 7; ++$i)
{
$strIndex = rand(1, strlen($str));
if(rand(0, 1))
{
$color = $red;
}
else
{
$color = $blur;
}
imagettftext($img, 20, rand(-45, 45), $i * 30 + 5, 24, $color, $fontFile, $str[$strIndex]);
}
imagepng($img);
imagedestroy($img);
?>会生成一个长:210像素,高:47像素的图片大小,背景是灰色,显示7个随机字母或数,随机的蓝色或红色,
一般情况下是正常的,但偶尔会出现,刷新后,只有一个210 * 47 的图片,里面是个红叉,就是那种图片不存在里显示的图标,但再刷新又没了,偶尔刷新又出现这情况,不知道调试方法和原因所在。求高人指教。
ob_clean();
header("Content-type:image/png");
$img = imagecreate(210, 47);
imagecolorallocatealpha($img, 220, 220, 220, 0);
$str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
$fontFile = './STLITI.TTF';
$red = imagecolorallocate($img, 255, 0, 0);
$blur = imagecolorallocate($img, 0, 0, 255);
for($i = 0 ; $i < 7; ++$i)
{
$strIndex = rand(1, strlen($str));
if(rand(0, 1))
{
$color = $red;
}
else
{
$color = $blur;
}
imagettftext($img, 20, rand(-45, 45), $i * 30 + 5, 24, $color, $fontFile, $str[$strIndex]);
}
imagepng($img);
imagedestroy($img);
?>会生成一个长:210像素,高:47像素的图片大小,背景是灰色,显示7个随机字母或数,随机的蓝色或红色,
一般情况下是正常的,但偶尔会出现,刷新后,只有一个210 * 47 的图片,里面是个红叉,就是那种图片不存在里显示的图标,但再刷新又没了,偶尔刷新又出现这情况,不知道调试方法和原因所在。求高人指教。
解决方案 »
- 求问html获取php变量的问题
- Fatal error: Allowed memory size of 587202560 bytes exhausted (tried to allocate 493123764 bytes) in
- 有没有类似 这样得到相对路径的方法
- 求PHP 项目开发文档
- 活动帖问的问题徐老师不回答,再开一帖吧
- php向mysql加入数据,如果信息的字数过大,就会出现重复与乱码,望高手指教,急!谢谢!
- 怎样调整div中的蚊子的大小?
- 请提供一php函数,把一utf8的字符串转换成gb2312。请务必帮忙,40万的项目要出炉了,急也!
- 得到访问用户的机器配置的问题
- 看了很久,谁能帮我看下
- 对象怎么转成json
- 求助,问一个while循环出数据库里的图片的问题
不知为何,加上这句后就刷新了几十次,都没出现问题,
我知道这句的意思是只显示除了以下两个警告信息之外的所有警告或错误信息。
E_STRICT 编码标准化警告(建议如何修改以向前兼容)
与
E_NOTICE 运行时提醒(经常是bug)难道我这是出现BUG了?没科学道理啊。大部分情况下都是正常显示的。只偶尔出现。
一:error_reporting(E_ALL);
出现和没加前的问题
二:error_reporting(E_ALL & ~(E_STRICT));
出现和没加前的问题
三:error_reporting(E_ALL & ~(E_NOTICE));
问题解决
四:error_reporting(E_ALL & ~(E_STRICT|E_NOTICE));
问题解决难道真的是 E_NOTICE 运行时提醒(经常是bug,也可能是有意的) 有BUG?求BUG原因。
改为
$strIndex = rand(0, strlen($str)-1);$str 中最后一个字符的索引应该是 strlen($str)-1