<?php
$image=imagecreate(200,100);
$black=imagecolorallocate($image,0,0,0);
$white=imagecolorallocate($image,255,255,255);
for($i=0;$i<9;$i++)
{
imageline($image,rand(0,200),rand(0,100),rand(0,200),rand(0,100),$white);
}
for($i=0;$i<150;$i++)
{
imagesetpixel($image,rand(0,200),rand(0,100),$white);
}
{
switch(rand(1,3))
{
case'1':
$ch=rand(0,9);
break;
case'2':
$ch=sprintf('%c',rand(97,122));
break;
$ch=sprintf('%c',rand(65,90));
break;
}
$str.=$ch;
}
imagettftext($image,32,rand(0,15),20,70,$white,'C:\windows\fonts\mingliu.ttc',$str);
imagejpeg($image);
imagedestory();
?>
for($i=0;$str='';$i<4;$i++)
这条语句
另外,
for($i=0;$str='';$i<4;$i++)
语句中出现了3个分号,这是不符合PHP中for语句用法的。
for语句使用方式如下:
第一种,全语句模式:
for($i=0; $i<10; $i++){
}
第二种,省略初始赋值语句:
$i=0;
for(;$i<10; $i++){
}
第三种,省略回调语句:
for($i=0; $i<10; ){
$i++;
}
第四种, 省略初始赋值语句以及回调语句:
$i=0;
for(;$i<10;){
$i++;
}
for语句的用法只有以上四种情况,但是绝对不可以省略或者多出for后面括号中的分号。
你再检查下你的程序。
for($i=0;$str='';$i<4;$i++)
里面有3个了,要改成
for($i=0,$str='';$i<4;$i++)追问
改了就没有错误了,但是为什么是一堆乱码?
追答哪里是一堆乱码?生成的验证码吗
本回答被提问者采纳