php7實踐指南-ch12影象處理影象驗證碼
阿新 • • 發佈:2021-02-03
技術標籤:php
12.4 影象驗證碼
影象驗證碼就是在一張圖片上寫上幾個字元,並輔之以一些干擾元素(通常為畫素點和斜線)。影象驗證碼經常用在使用者登入、論壇發帖等場景中,其目的是為了防止機器人(程式)自動操作,驗證此次行為是由使用者來完成的。以下示例為一個生成驗證碼的檔案code.php:
<?php function random($len){ $srcstr="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; mt_srand(); $strs=""; for($i=0;$i<$len;$i++){ $strs.=$srcstr[mt_rand(0,35)]; } return strtoupper($strs); } $str=random(4); //隨機生成的字串 $width =50; //驗證碼圖片的寬度 $height = 25; //驗證碼圖片的高度 @header("Content-Type:image/png"); //echo $str; $im= imagecreate($width,$height); //背景色 $back=imagecolorallocate($im,0xFF,0xFF,0xFF); //模糊點顏色 $pix=imagecolorallocate($im,187,230,247); //字型顏色 $font=imagecolorallocate($im,41,163,236); //繪製模糊作用點 mt_srand(); for($i=0;$i<1000;$i++){ imagesetpixel($im,mt_rand(0,$width),mt_rand(0,$height),$pix); } imagestring($im,5,7,5,$str,$font); imagerectangle($im,0,0,$width-1,$height-1,$font); imagepng($im); imagedestroy($im);
在另外一個檔案a.php中將code.php檔案作為HTML標籤img的src屬性值,程式碼如下:
<?php
echo "<img src=code.php>";//生成圖片
?>
在瀏覽器中執行a.php檔案