1. 程式人生 > 其它 >php7實踐指南-ch12影象處理影象驗證碼

php7實踐指南-ch12影象處理影象驗證碼

技術標籤: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檔案