$runtime = number_format((microtime_float() – $starttime), 4).’s’;
//输出
echo ‘RunTime:’.$runtime;
Popularity: 70%
Popularity: 70%
Popularity: 50%
欢迎使用 WordPress 。这是系统自动生成的演示文章。
今天起,本站由原Z-blog转换成WordPress了。
本站恢复更新,我会把在开发中碰到的代码,及发现的好代码Copy上来,与大家分享。
也欢迎大家提供好的小段代码给我。
Popularity: 80%
//———————————————————————————–
——-
// 函数名:CheckEmailAddr($C_mailaddr)
// 作 用:判断是否为有效邮件地址
// 参 数:$C_mailaddr(待检测的邮件地址)
// 返回值:布尔值
// 备 注:无
//———————————————————————————–
——-
function CheckEmailAddr($C_mailaddr)
{
if (!eregi(“^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$”,
$C_mailaddr))
//(!ereg(“^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*$”,
$c_mailaddr))
{
return false;
}
return true;
}
//———————————————————————————–
——-
Popularity: 57%
// 函数名:CheckMoney($C_Money)
// 作 用:检查数据是否是99999.99格式
// 参 数:$C_Money(待检测的数字)
// 返回值:布尔值
// 备 注:无
//———————————————————————————–
——-
function CheckMoney($C_Money)
{
if (!ereg(“^[0-9][.][0-9]$”, $C_Money)) return false;
return true;
}
//———————————————————————————–
——-
Popularity: 69%
//———————————————————————————–
——-
// 函数名:CheckLengthBetween($C_char, $I_len1, $I_len2=100)
// 作 用:判断是否为指定长度内字符串
// 参 数:$C_char(待检测的字符串)
// $I_len1 (目标字符串长度的下限)
// $I_len2 (目标字符串长度的上限)
// 返回值:布尔值
// 备 注:无
//———————————————————————————–
——-
function CheckLengthBetween($C_cahr, $I_len1, $I_len2=100)
{
$C_cahr = trim($C_cahr);
if (strlen($C_cahr) < $I_len1) return false;
if (strlen($C_cahr) > $I_len2) return false;
return true;
}
//———————————————————————————–
——-
Popularity: 55%
/*
* 功能:连续建目录
* $dir 目录字符串
*/
function makedir( $dir, $mode = “0777″ ) {
if( ! $dir ) return 0;
$dir = str_replace( “\\”, “/”, $dir );
$rootdir = “./”;
$mdir = “”;
foreach( explode( “/”, $dir ) as $val ) {
$mdir .= $val.”/”;
$newmdir=”";
if( $val == “..” || $val == “.” || $val=”") continue;
$newmdir = $rootdir.$mdir;
if( ! file_exists( $newmdir ) ) {
mkdir($newmdir);
chmod($newmdir,$mode);
if(! file_exists( $newmdir )){
echo “创建目录 [".$newmdir."]失败.”;
exit;
}
}
}
return true;
}
Popularity: 82%
create PROCEDURE sp_decrypt(@objectname varchar(50))
AS
begin
set nocount on
--CSDN:j9988 copyright:2004.07.15
--V3.2
--破解字节不受限制,适用于SQLSERVER2000存储过程,函数,视图,触发器
--修正上一版"视图触发器"不能正确解密错误
--发现有错,请E_MAIL:CSDNj9988@tom.com
begin tran
declare @objectname1 varchar(100),@orgvarbin varbinary(8000)
declare @sql1 nvarchar(4000),@sql2 varchar(8000),@sql3 nvarchar(4000),@sql4 nvarchar(4000)
DECLARE @OrigSpText1 nvarchar(4000), @OrigSpText2 nvarchar(4000) , @OrigSpText3 nvarchar(4000), @resultsp nvarchar(4000)
declare @i int,@status int,@type varchar(10),@parentid int
declare @colid int,@n int,@q int,@j int,@k int,@encrypted int,@number int
select @type=xtype,@parentid=parent_obj from sysobjects where id=object_id(@objectname)
create table #temp(number int,colid int,ctext varbinary(8000),encrypted int,status int)
insert #temp SELECT number,colid,ctext,encrypted,status FROM syscomments WHERE id = object_id(@objectname)
select @number=max(number) from #temp
set @k=0
while @k<=@number
begin
if exists(select 1 from syscomments where id=object_id(@objectname) and number=@k)
begin
if @type='P'
set @sql1=(case when @number>1 then 'ALTER PROCEDURE '+ @objectname +';'+rtrim(@k)+' WITH ENCRYPTION AS '
else 'ALTER PROCEDURE '+ @objectname+' WITH ENCRYPTION AS '
end)
if @type='TR'
begin
declare @parent_obj varchar(255),@tr_parent_xtype varchar(10)
select @parent_obj=parent_obj from sysobjects where id=object_id(@objectname)
select @tr_parent_xtype=xtype from sysobjects where id=@parent_obj
if @tr_parent_xtype='V'
begin
set @sql1='ALTER TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION INSTERD OF INSERT AS PRINT 1 '
end
else
begin
set @sql1='ALTER TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION FOR INSERT AS PRINT 1 '
end
end
if @type='FN' or @type='TF' or @type='IF'
set @sql1=(case @type when 'TF' then
'ALTER FUNCTION '+ @objectname+'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end '
when 'FN' then
'ALTER FUNCTION '+ @objectname+'(@a char(1)) returns char(1) with encryption as begin return @a end'
when 'IF' then
'ALTER FUNCTION '+ @objectname+'(@a char(1)) returns table with encryption as return select @a as a'
end)
if @type='V'
set @sql1='ALTER VIEW '+@objectname+' WITH ENCRYPTION AS SELECT 1 as f'
set @q=len(@sql1)
set @sql1=@sql1+REPLICATE('-',4000-@q)
select @sql2=REPLICATE('-',8000)
set @sql3='exec(@sql1'
select @colid=max(colid) from #temp where number=@k
set @n=1
while @n<=CEILING(1.0*(@colid-1)/2) and len(@sql3)<=3996
begin
set @sql3=@sql3+'+@'
set @n=@n+1
end
set @sql3=@sql3+')'
exec sp_executesql @sql3,N'@sql1 nvarchar(4000),@ varchar(8000)',@sql1=@sql1,@=@sql2
end
set @k=@k+1
end
set @k=0
while @k<=@number
begin
if exists(select 1 from syscomments where id=object_id(@objectname) and number=@k)
begin
select @colid=max(colid) from #temp where number=@k
set @n=1
while @n<=@colid
begin
select @OrigSpText1=ctext,@encrypted=encrypted,@status=status FROM #temp WHERE colid=@n and number=@k
SET @OrigSpText3=(SELECT ctext FROM syscomments WHERE id=object_id(@objectname) and colid=@n and number=@k)
if @n=1
begin
if @type='P'
SET @OrigSpText2=(case when @number>1 then 'CREATE PROCEDURE '+ @objectname +';'+rtrim(@k)+' WITH ENCRYPTION AS '
else 'CREATE PROCEDURE '+ @objectname +' WITH ENCRYPTION AS '
end)
if @type='FN' or @type='TF' or @type='IF'
SET @OrigSpText2=(case @type when 'TF' then
'CREATE FUNCTION '+ @objectname+'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end '
when 'FN' then
'CREATE FUNCTION '+ @objectname+'(@a char(1)) returns char(1) with encryption as begin return @a end'
when 'IF' then
'CREATE FUNCTION '+ @objectname+'(@a char(1)) returns table with encryption as return select @a as a'
end)
if @type='TR'
begin
if @tr_parent_xtype='V'
begin
set @OrigSpText2='CREATE TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION INSTEAD OF INSERT AS PRINT 1 '
end
else
begin
set @OrigSpText2='CREATE TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION FOR INSERT AS PRINT 1 '
end
end
if @type='V'
set @OrigSpText2='CREATE VIEW '+@objectname+' WITH ENCRYPTION AS SELECT 1 as f'
set @q=4000-len(@OrigSpText2)
set @OrigSpText2=@OrigSpText2+REPLICATE('-',@q)
end
else
begin
SET @OrigSpText2=REPLICATE('-', 4000)
end
SET @i=1
SET @resultsp = replicate(N'A', (datalength(@OrigSpText1) / 2))
WHILE @i<=datalength(@OrigSpText1)/2
BEGIN
SET @resultsp = stuff(@resultsp, @i, 1, NCHAR(UNICODE(substring(@OrigSpText1, @i, 1)) ^
(UNICODE(substring(@OrigSpText2, @i, 1)) ^
UNICODE(substring(@OrigSpText3, @i, 1)))))
SET @i=@i+1
END
set @orgvarbin=cast(@OrigSpText1 as varbinary(8000))
set @resultsp=(case when @encrypted=1
then @resultsp
else convert(nvarchar(4000),case when @status&2=2 then uncompress(@orgvarbin) else @orgvarbin end)
end)
print @resultsp
set @n=@n+1
end
end
set @k=@k+1
end
drop table #temp
rollback tran
end
go
hx提示:在查询分析器里运行代码,创建了一个叫sp_decrypt的存储过程,然后用sp_decrypt 加密的存储过程名称就可以看到解密后的
Popularity: 73%
/**
* @(#)bmp.php
* PHP version 5.2.3
*
*
* Copyright 2007 SoftRoad. All Rights Reserved.
*
*====================================================================
* 変更履歴
*
* 新規作成 2007 年5月17日 蒋彪
*/
function imagebmp($img, $file = “”, $RLE = 0) {
$ColorCount = imagecolorstotal($img);
$Transparent = imagecolortransparent($img);
$IsTransparent = $Transparent != -1;
if ($IsTransparent)
$ColorCount–;
if ($ColorCount == 0) {
$ColorCount = 0;
$BitCount = 24;
};
if (($ColorCount > 0) and ($ColorCount <= 2)) {
$ColorCount = 2;
$BitCount = 1;
};
if (($ColorCount > 2) and ($ColorCount <= 16)) {
$ColorCount = 16;
$BitCount = 4;
};
if (($ColorCount > 16) and ($ColorCount <= 256)) {
$ColorCount = 0;
$BitCount = 8;
};
$Width = imagesx($img);
$Height = imagesy($img);
$Zbytek = (4 – ($Width / (8 / $BitCount)) % 4) % 4;
$palsize = 0; // cid added
if ($BitCount < 24)
$palsize = pow(2, $BitCount) * 4;
$size = (floor($Width / (8 / $BitCount)) + $Zbytek) * $Height +54;
$size += $palsize;
$offset = 54 + $palsize;
// Bitmap File Header
$ret = ‘BM’; // header (2b)
$ret .= int_to_dword($size); // size of file (4b)
$ret .= int_to_dword(0); // reserved (4b)
$ret .= int_to_dword($offset); // byte location in the file which is first byte of IMAGE (4b)
// Bitmap Info Header
$ret .= int_to_dword(40); // Size of BITMAPINFOHEADER (4b)
$ret .= int_to_dword($Width); // width of bitmap (4b)
$ret .= int_to_dword($Height); // height of bitmap (4b)
$ret .= int_to_word(1); // biPlanes = 1 (2b)
$ret .= int_to_word($BitCount); // biBitCount = {1 (mono) or 4 (16 clr ) or 8 (256 clr) or 24 (16 Mil)} (2b)
$ret .= int_to_dword($RLE); // RLE COMPRESSION (4b)
$ret .= int_to_dword(0); // width x height (4b)
$ret .= int_to_dword(0); // biXPelsPerMeter (4b)
$ret .= int_to_dword(0); // biYPelsPerMeter (4b)
$ret .= int_to_dword(0); // Number of palettes used (4b)
$ret .= int_to_dword(0); // Number of important colour (4b)
// image data
$CC = $ColorCount;
$sl1 = strlen($ret);
if ($CC == 0)
$CC = 256;
if ($BitCount < 24) {
$ColorTotal = imagecolorstotal($img);
if ($IsTransparent)
$ColorTotal–;
for ($p = 0; $p < $ColorTotal; $p++) {
$color = imagecolorsforindex($img, $p);
$ret .= inttobyte($color["blue"]);
$ret .= inttobyte($color["green"]);
$ret .= inttobyte($color["red"]);
$ret .= inttobyte(0); //RESERVED
};
$CT = $ColorTotal;
for ($p = $ColorTotal; $p < $CC; $p++) {
$ret .= inttobyte(0);
$ret .= inttobyte(0);
$ret .= inttobyte(0);
$ret .= inttobyte(0); //RESERVED
};
};
$retd = ”; // cid added
if ($BitCount <= 8) {
for ($y = $Height -1; $y >= 0; $y–) {
$bWrite = “”;
for ($x = 0; $x < $Width; $x++) {
$color = imagecolorat($img, $x, $y);
$bWrite .= decbinx($color, $BitCount);
if (strlen($bWrite) == 8) {
$retd .= inttobyte(bindec($bWrite));
$bWrite = “”;
};
};
if ((strlen($bWrite) < 8) and (strlen($bWrite) != 0)) {
$sl = strlen($bWrite);
for ($t = 0; $t < 8 – $sl; $t++)
$sl .= “0″;
$retd .= inttobyte(bindec($bWrite));
};
for ($z = 0; $z < $Zbytek; $z++)
$retd .= inttobyte(0);
};
};
if (($RLE == 1) and ($BitCount == 8)) {
for ($t = 0; $t < strlen($retd); $t += 4) {
if ($t != 0)
if (($t) % $Width == 0)
$ret .= chr(0) .
chr(0);
if (($t +5) % $Width == 0) {
$ret .= chr(0) . chr(5) . substr($retd, $t, 5) . chr(0);
$t += 1;
}
if (($t +6) % $Width == 0) {
$ret .= chr(0) . chr(6) . substr($retd, $t, 6);
$t += 2;
} else {
$ret .= chr(0) . chr(4) . substr($retd, $t, 4);
};
};
$ret .= chr(0) . chr(1);
} else {
$ret .= $retd;
};
if ($BitCount == 24) {
$Dopl = ”; // cid added
for ($z = 0; $z < $Zbytek; $z++)
$Dopl .= chr(0);
for ($y = $Height -1; $y >= 0; $y–) {
for ($x = 0; $x < $Width; $x++) {
$color = imagecolorsforindex($img, ImageColorAt($img, $x, $y));
$ret .= chr($color["blue"]) . chr($color["green"]) . chr($color["red"]);
}
$ret .= $Dopl;
};
};
if ($file != “”) {
$r = ($f = fopen($file, “w”));
$r = $r and fwrite($f, $ret);
$r = $r and fclose($f);
return $r;
} else {
echo $ret;
};
};
/*
*————————————————————
* ImageCreateFromBmp
*————————————————————
* – Reads image from a BMP file
*
* Parameters: $file – Target file to load
*
* Returns: Image ID
*/
function imagecreatefrombmp($file) {
global $CurrentBit, $echoMode;
$f = fopen($file, “r”);
$Header = fread($f, 2);
if ($Header == “BM”) {
$Size = freaddword($f);
$Reserved1 = freadword($f);
$Reserved2 = freadword($f);
$FirstByteOfImage = freaddword($f);
$SizeBITMAPINFOHEADER = freaddword($f);
$Width = freaddword($f);
$Height = freaddword($f);
$biPlanes = freadword($f);
$biBitCount = freadword($f);
$RLECompression = freaddword($f);
$WidthxHeight = freaddword($f);
$biXPelsPerMeter = freaddword($f);
$biYPelsPerMeter = freaddword($f);
$NumberOfPalettesUsed = freaddword($f);
$NumberOfImportantColors = freaddword($f);
if ($biBitCount < 24) {
$img = imagecreate($Width, $Height);
$Colors = pow(2, $biBitCount);
for ($p = 0; $p < $Colors; $p++) {
$B = freadbyte($f);
$G = freadbyte($f);
$R = freadbyte($f);
$Reserved = freadbyte($f);
$Palette[] = imagecolorallocate($img, $R, $G, $B);
};
if ($RLECompression == 0) {
$Zbytek = (4 – ceil(($Width / (8 / $biBitCount))) % 4) % 4;
for ($y = $Height -1; $y >= 0; $y–) {
$CurrentBit = 0;
for ($x = 0; $x < $Width; $x++) {
$C = freadbits($f, $biBitCount);
imagesetpixel($img, $x, $y, $Palette[$C]);
};
if ($CurrentBit != 0) {
freadbyte($f);
};
for ($g = 0; $g < $Zbytek; $g++)
freadbyte($f);
};
};
};
if ($RLECompression == 1) //$BI_RLE8
{
$y = $Height;
$pocetb = 0;
while (true) {
$y–;
$prefix = freadbyte($f);
$suffix = freadbyte($f);
$pocetb += 2;
$echoit = false;
if ($echoit)
echo “Prefix: $prefix Suffix: $suffix
“;
if (($prefix == 0) and ($suffix == 1))
break;
if (feof($f))
break;
while (!(($prefix == 0) and ($suffix == 0))) {
if ($prefix == 0) {
$pocet = $suffix;
$Data .= fread($f, $pocet);
$pocetb += $pocet;
if ($pocetb % 2 == 1) {
freadbyte($f);
$pocetb++;
};
};
if ($prefix > 0) {
$pocet = $prefix;
for ($r = 0; $r < $pocet; $r++)
$Data .= chr($suffix);
};
$prefix = freadbyte($f);
$suffix = freadbyte($f);
$pocetb += 2;
if ($echoit)
echo “Prefix: $prefix Suffix: $suffix
“;
};
for ($x = 0; $x < strlen($Data); $x++) {
imagesetpixel($img, $x, $y, $Palette[ord($Data[$x])]);
};
$Data = “”;
};
};
if ($RLECompression == 2) //$BI_RLE4
{
$y = $Height;
$pocetb = 0;
/*while(!feof($f))
echo freadbyte($f).”_”.freadbyte($f).”
“;*/
while (true) {
//break;
$y–;
$prefix = freadbyte($f);
$suffix = freadbyte($f);
$pocetb += 2;
$echoit = false;
if ($echoit)
echo “Prefix: $prefix Suffix: $suffix
“;
if (($prefix == 0) and ($suffix == 1))
break;
if (feof($f))
break;
while (!(($prefix == 0) and ($suffix == 0))) {
if ($prefix == 0) {
$pocet = $suffix;
$CurrentBit = 0;
for ($h = 0; $h < $pocet; $h++)
$Data .= chr(freadbits($f, 4));
if ($CurrentBit != 0)
freadbits($f, 4);
$pocetb += ceil(($pocet / 2));
if ($pocetb % 2 == 1) {
freadbyte($f);
$pocetb++;
};
};
if ($prefix > 0) {
$pocet = $prefix;
$i = 0;
for ($r = 0; $r < $pocet; $r++) {
if ($i % 2 == 0) {
$Data .= chr($suffix % 16);
} else {
$Data .= chr(floor($suffix / 16));
};
$i++;
};
};
$prefix = freadbyte($f);
$suffix = freadbyte($f);
$pocetb += 2;
if ($echoit)
echo “Prefix: $prefix Suffix: $suffix
“;
};
for ($x = 0; $x < strlen($Data); $x++) {
imagesetpixel($img, $x, $y, $Palette[ord($Data[$x])]);
};
$Data = “”;
};
};
if ($biBitCount == 24) {
$img = imagecreatetruecolor($Width, $Height);
$Zbytek = $Width % 4;
for ($y = $Height -1; $y >= 0; $y–) {
for ($x = 0; $x < $Width; $x++) {
$B = freadbyte($f);
$G = freadbyte($f);
$R = freadbyte($f);
$color = imagecolorexact($img, $R, $G, $B);
if ($color == -1)
$color = imagecolorallocate($img, $R, $G, $B);
imagesetpixel($img, $x, $y, $color);
}
for ($z = 0; $z < $Zbytek; $z++)
freadbyte($f);
};
};
return $img;
};
fclose($f);
};
/*
* Helping functions:
*————————-
*
* freadbyte($file) – reads 1 byte from $file
* freadword($file) – reads 2 bytes (1 word) from $file
* freaddword($file) – reads 4 bytes (1 dword) from $file
* freadlngint($file) – same as freaddword($file)
* decbin8($d) – returns binary string of d zero filled to 8
* RetBits($byte,$start,$len) – returns bits $start->$start+$len from $byte
* freadbits($file,$count) – reads next $count bits from $file
* RGBToHex($R,$G,$B) – convert $R, $G, $B to hex
* int_to_dword($n) – returns 4 byte representation of $n
* int_to_word($n) – returns 2 byte representation of $n
*/
function freadbyte($f) {
return ord(fread($f, 1));
};
function freadword($f) {
$b1 = freadbyte($f);
$b2 = freadbyte($f);
return $b2 * 256 + $b1;
};
function freadlngint($f) {
return freaddword($f);
};
function freaddword($f) {
$b1 = freadword($f);
$b2 = freadword($f);
return $b2 * 65536 + $b1;
};
function RetBits($byte, $start, $len) {
$bin = decbin8($byte);
$r = bindec(substr($bin, $start, $len));
return $r;
};
$CurrentBit = 0;
function freadbits($f, $count) {
global $CurrentBit, $SMode;
$Byte = freadbyte($f);
$LastCBit = $CurrentBit;
$CurrentBit += $count;
if ($CurrentBit == 8) {
$CurrentBit = 0;
} else {
fseek($f, ftell($f) – 1);
};
return RetBits($Byte, $LastCBit, $count);
};
function RGBToHex($Red, $Green, $Blue) {
$hRed = dechex($Red);
if (strlen($hRed) == 1)
$hRed = “0$hRed”;
$hGreen = dechex($Green);
if (strlen($hGreen) == 1)
$hGreen = “0$hGreen”;
$hBlue = dechex($Blue);
if (strlen($hBlue) == 1)
$hBlue = “0$hBlue”;
return ($hRed . $hGreen . $hBlue);
};
function int_to_dword($n) {
return chr($n & 255) . chr(($n >> 8) & 255) . chr(($n >> 16) & 255) . chr(($n >> 24) & 255);
}
function int_to_word($n) {
return chr($n & 255) . chr(($n >> 8) & 255);
}
function decbin8($d) {
return decbinx($d, 8);
};
function decbinx($d, $n) {
$bin = decbin($d);
$sbin = strlen($bin);
for ($j = 0; $j < $n – $sbin; $j++)
$bin = “0$bin”;
return $bin;
};
function inttobyte($n) {
return chr($n);
};
?>
Popularity: 55%
作者不详
<?session_start();?>
<FORM METHOD=POST ACTION="">
<input type=text name=number maxlength=4><img src="YanZhengMa.php?act=init">
<INPUT TYPE="submit" name="sub">
</FORM>
<?
//检验校验码
if(isset($HTTP_POST_VARS["sub"])):
if($HTTP_POST_VARS["number"] != $HTTP_SESSION_VARS[login_check_number] || empty($HTTP_POST_VARS["number"])){
echo "校验码不正确!" ;
}else{
echo"验证码通过!";
}
endif;
show_source('test.php');
//以上本页的源码
//以下是生成验证码的源码
show_source('YanZhengMa.php');
?>
<?php
session_start();
session_register("login_check_number");
//昨晚看到了chianren上的验证码效果,就考虑了一下,用PHP的GD库完成了类似功能
//先成生背景,再把生成的验证码放上去
$img_height=120; //先定义图片的长、宽
$img_width=40;
if($HTTP_GET_VARS["act"]== "init"){
//srand(microtime() * 100000);//PHP420后,srand不是必须的
for($Tmpa=0;$Tmpa<4;$Tmpa++){
$nmsg.=dechex(rand(0,15));
}//by sports98
$HTTP_SESSION_VARS[login_check_number] = $nmsg;
//$HTTP_SESSION_VARS[login_check_number] = strval(mt_rand("1111","9999")); //生成4位的随机数,放入session中
//谁能做下补充,可以同时生成字母和数字啊??----由sports98完成了
$aimg = imageCreate($img_height,$img_width); //生成图片
ImageColorAllocate($aimg, 255,255,255); //图片底色,ImageColorAllocate第1次定义颜色PHP就认为是底色了
$black = ImageColorAllocate($aimg, 0,0,0); //定义需要的黑色
ImageRectangle($aimg,0,0,$img_height-1,$img_width-1,$black);//先成一黑色的矩形把图片包围
//下面该生成雪花背景了,其实就是在图片上生成一些符号
for ($i=1; $i<=100; $i++) { //先用100个做测试
imageString($aimg,1,mt_rand(1,$img_height),mt_rand(1,$img_width),"*",imageColorAllocate($aimg,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)));
//哈,看到了吧,其实也不是雪花,就是生成*号而已。为了使它们看起来"杂乱无章、5颜6色",就得在1个1个生成它们的时候,让它们的位置、颜色,甚至大小都用随机数,rand()或mt_rand都可以完成。
}
//上面生成了背景,现在就该把已经生成的随机数放上来了。道理和上面差不多,随机数1个1个地放,同时让他们的位置、大小、颜色都用成随机数~~
//为了区别于背景,这里的颜色不超过200,上面的不小于200
for ($i=0;$i<strlen($HTTP_SESSION_VARS[login_check_number]);$i++){
imageString($aimg, mt_rand(3,5),$i*$img_height/4+mt_rand(1,10),mt_rand(1,$img_width/2), $HTTP_SESSION_VARS[login_check_number][$i],imageColorAllocate($aimg,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200)));
}
Header("Content-type: image/png"); //告诉浏览器,下面的数据是图片,而不要按文字显示
ImagePng($aimg); //生成png格式。。。嘿嘿效果蛮像回事的嘛。。。
ImageDestroy($aimg);
}
?>
Popularity: 43%