<h2> <a href="http://blog.blueshop.com.tw/mamba/archive/2007/02/03/49559.aspx" id="viewpost.ascx_TitleUrl">PHP中製作驗證圖片</a> </h2> <div class="blgfolderbar"> </div> 今天推出驗證圖片的功能<br />每一行的指令都有加上註解<br />下面各項參數最佳化於100X30的尺寸<br />如有變更驗證圖片的長寬<br />參數需要自行修正<br /><br /> <br /> <!-- more --><textarea class="Php" rows="10" cols="70" name="code"><br /> <br /> function makeRandomImage($arg_aryVerifyString,$arg_intWidth = 100,$arg_intHieht = 30)<br /> { <br /> header('Content-type: image/png');<br /> //干擾字串長度<br /> $intInterfereStringLength = round($arg_intWidth / 5.4) ;<br /> //干擾字串出現幾次<br /> $intInterfereStringDisplayCount = round($arg_intHieht / 10) ;<br /> //畫布<br /> $objImage = ImageCreate($arg_intWidth,$arg_intHieht); <br /> //背景色碼<br /> $objBgColor = imagecolorallocate($objImage,255,255,255);<br /> //框線色碼<br /> $objBorderColor =imagecolorallocate($objImage,0,0,255);<br /> //驗證字串色碼<br /> $objVerifyStringColor = imagecolorallocate($objImage,255,10,22);<br /> //干擾字串色碼<br /> $objInterfereStringColor = imagecolorallocate($objImage,255,128,255); <br /> //製作背景干擾字串<br /> for($i=0 ; $i<$intInterfereStringDisplayCount ;$i++)<br /> {<br /> imagestring($objImage, 1,2,($i*10)+1, createRandString($intInterfereStringLength), $objInterfereStringColor); <br /> }<br /> //上驗證碼<br /> imagestring($objImage, 5, round($arg_intHieht*0.3), round($arg_intHieht/4.5), $arg_aryVerifyString, $objVerifyStringColor);<br /> //畫框線<br /> imageline($objImage,0,0,$arg_intWidth,0,$objBorderColor);//上<br /> imageline($objImage,0,$arg_intHieht -1,$arg_intWidth,$arg_intHieht-1,$objBorderColor);//下<br /> imageline($objImage,0,0,0,$arg_intHieht,$objBorderColor); //左<br /> imageline($objImage,$arg_intWidth-1,0,$arg_intWidth-1,$arg_intHieht,$objBorderColor); //右 <br /> imagepng( $objImage);<br /> //清除資源<br /> imageDestroy($objImage);<br /> }<br /> //隨機字串<br /> function createRandString ($arg_intLength) {<br /> srand((double)microtime()*1000000); <br /> $strLetters = range ('`','Z');<br /> $strNumbers = range(0,9);<br /> $arrayChars = array_merge($strLetters,$strNumbers);<br /> $strRandString ='';<br /> for ( $i=0;$i<$arg_intLength;$i++ )<br /> {<br /> shuffle($arrayChars);<br /> $strRandString .= $arrayChars[0];<br /> }<br /> return $strRandString;<br /> }<br /> <br /> <br /> </textarea> <br> makeRandomImage('A E - 8 6',100,30);