??? ?? ??? ???? PHP ?? ??? ??? ??
????? ??:
??? ?? ????? ??? ??? ?? ??? ?? ?? ?? ????? ???? ??? ??? ?? ?? ????? ?????. ??? ?? ?? ??? ????? ??? ????? ???? ?? ???? ??? ????? ??? ???? ?? ?????. ?? ?? ??????? ???? ??? ???? ???? ??, ??? ? ??? ??? ?? ???? ?? ?? ?? ??? ?????.
?? ?? ??? ???? ??? ??? ??? ????? ??? ????, OCR ??? ?? ??? ?? ?? ??? ??? ? ???? ????? ??? ??? ? ??? ?? ????. ?? ??? ??? ???. ???? ??? ?? ??? ????, ?? ??? ??? ??? ???? ??? ? ????.
?? ???? ????
1, 4??, ??? ??? ???, ?? ???? ????? ?? ??? ?? ????.
2. ??? ??? ?? ?? ??. ??? ??? ?? ????? ??? ??? ????? ????? ? ??? ??? ??? ?? ??? ???? ???? ?? ??? ????. ???? ???? ?? ?? ??? ?? ??? ?? ??? ? ????!
3. ??? ?? ??? ??? ?? + ??? ??? ??? + ??? ?? ?? + ??? ??.
4. ??? ??? ?? ?? ?? ?????. ???? ????? ??? ? ????? ??? ??? ??? ??? ??? ????? ? ?????.
???? ?? ?? ??? ?? ??? ? ?? ?????. ?? ????? ? ?? ? ? ?? ??? ??? ?? ??? ?? ?? ??? ???????.
? ? ?? ???? ????? ??? ??? ??? ? ????. 2?? ??? ????? ??? ?? ???? ? ?? ??? ?? ???? ??, ? ?? ??? ? ??, ? ?? ??? ? ???, ? ?? ??? ?? ??? ? ????.
?? ??? ????? ??, ? ? ?? ??? ???? ??? ???? ?????.
??? ??? ?? ????. ??? ??? ??? ?? ?? ????, ??? ?????, ??? ??? ????.
??? ??? ?? ? ???? ??? ? ? ???. ???? ????? ??? ???? ????? ????? ?? ??? ??? ?? ????. ????? ?? ??? ??? ???? ? ?????.
? ?? ??? ??? ??? ??? ???? ????? ??? ? ??? ????? ??? ???, ? ??? ??? ??? ? ??? ? ????. ? ?? ??? ???? ?? ???? ????. ? ????? ??? ??? ?? ??? ?? ?? ?????. ? ?? ????? ???? ?? ??? ? ????.
? ?? ??? ? ?? ???? ??? ?? ??? ???? ? ?? ??? ???? ??? ???? ??? ???? ???? ????.
PNG ??? ?? ??? ???? ?? ??? ??:
1. png ?? ??
2. ??? ??? ??
3. ?? ?? ? ??? ??
4. ?? ?? ?? ? ?? ?? png ???
6. ?? ??? ?? ???? ???? ?? ??? ????? ??? ? ???? ?????
7. ???? ?????
8. ???? ???? ???? ?????
??? ? ????. ?? ??:
<?php //設(shè)置session,必須處于腳本最頂部 session_start(); $image = imagecreatetruecolor(100, 30); //1>設(shè)置驗(yàn)證碼圖片大小的函數(shù) //5>設(shè)置驗(yàn)證碼顏色 imagecolorallocate(int im, int red, int green, int blue); $bgcolor = imagecolorallocate($image,255,255,255); //#ffffff //6>區(qū)域填充 int imagefill(int im, int x, int y, int col) (x,y) 所在的區(qū)域著色,col 表示欲涂上的顏色 imagefill($image, 0, 0, $bgcolor); //10>設(shè)置變量 $captcha_code = ""; //7>生成隨機(jī)數(shù)字 for($i=0;$i<4;$i++){ //設(shè)置字體大小 $fontsize = 6; //設(shè)置字體顏色,隨機(jī)顏色 $fontcolor = imagecolorallocate($image, rand(0,120),rand(0,120), rand(0,120)); //0-120深顏色 //設(shè)置數(shù)字 $fontcontent = rand(0,9); //10>.=連續(xù)定義變量 $captcha_code .= $fontcontent; //設(shè)置坐標(biāo) $x = ($i*100/4)+rand(5,10); $y = rand(5,10); imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor); } //10>存到session $_SESSION['authcode'] = $captcha_code; //8>增加干擾元素,設(shè)置雪花點(diǎn) for($i=0;$i<200;$i++){ //設(shè)置點(diǎn)的顏色,50-200顏色比數(shù)字淺,不干擾閱讀 $pointcolor = imagecolorallocate($image,rand(50,200), rand(50,200), rand(50,200)); //imagesetpixel — 畫一個(gè)單一像素 imagesetpixel($image, rand(1,99), rand(1,29), $pointcolor); } //9>增加干擾元素,設(shè)置橫線 for($i=0;$i<4;$i++){ //設(shè)置線的顏色 $linecolor = imagecolorallocate($image,rand(80,220), rand(80,220),rand(80,220)); //設(shè)置線,兩點(diǎn)一線 imageline($image,rand(1,99), rand(1,29),rand(1,99), rand(1,29),$linecolor); } //2>設(shè)置頭部,image/png header('Content-Type: image/png'); //3>imagepng() 建立png圖形函數(shù) imagepng($image); //4>imagedestroy() 結(jié)束圖形函數(shù) 銷毀$image imagedestroy($image); ?>?? ???? ??? ????.