php简单验证码

php简单验证码一例。

 代码:
  1. <?php  
  2.     /** 
  3.     *  vcode 
  4.     *  param   $w画布宽 
  5.     *  param   $h 画布高 
  6.     *  param   $fnum 验证码元素个数 
  7.     *  param   $fontsize 验证码元素大小 
  8.     *  param   $obs  干扰素个数 
  9.     */  
  10.     function vcode($w$h$fnum$fontsize$obs) {  
  11.     $img = imagecreatetruecolor($w,  $h);  
  12.   
  13.   
  14.     $white = imagecolorallocate($img, 255, 255, 255);  
  15.     $black = imagecolorallocate($img, 0 , 0, 0);  
  16.     $gray = imagecolorallocate($img, 180, 180, 180);  
  17.     imagefill($img, 0, 0, $gray);  
  18.     // by www.jbxue.com  
  19.   
  20.     for ($i=0; $i < $obs$i++) {   
  21.         imagesetpixel($img, rand(0, $w), rand(0, $h), $black);  
  22.     }  
  23.     $x = ($w - $fnum * $fontsize) / 2;  
  24.     $y = $h / 2 + $fontsize / 2;  
  25.     $fontfile = "final/fonts/msyh.ttf";  
  26.     $arr = array_merge(range(0,9), range('a''z'), range('A''Z'));  
  27.     shuffle($arr);  
  28.     $str=implode(array_slice($arr, 0, $fnum));  
  29.     imagettftext($img$fontsize, 0, $x$y$black$fontfile$str);  
  30.     header("content-type:image/jpeg");  
  31.     imagejpeg($img);  
  32.     imagedestroy($img);  
  33. }  
  34.     vcode(80, 40, 4, 15, 1000);    
比如这个验证码,其核心是imagettftext()函数,围绕这个函数来展开验证码的设计。
注意:range()函数的运用,参数如果是字符的话,要用单引号或双引号,否则header头会认为是有输出。

你可能感兴趣的:(PHP)