Rumah >php教程 >php手册 >php汉字验证码

php汉字验证码

WBOY
WBOYasal
2016-06-13 09:34:23939semak imbas

最近因项目的要求,需要使用汉字验证码,于是研究了一个,在这里贴出代码来和大家分享一下。下面是使用php生成汉字验证码的具体用法和函数代码。

用法如下:

<?php create_excode(4);//生成四个汉字的验证码

汉字验证码图片:

具体函数代码如下:

<?php /*
* $length 验证码汉字个数
*/
function create_excode($length){
	$randChar=array('浩','比','不','惊','静','看','友','前','花',
	'开','龙','落','义','得',	'江','无','意','虎','望','天','外',
	'云','卷','市','丁','中','程','人','产','名','仅','余','金',
	'国','美','币','东','木','水','火','土','七','九','八','工',
	'码','图','员','电','大','秒','舒','仁');
	header('content-type: image/png');
	$charWidth=30;//每个字符占有的宽度
	$image_x=$length*$charWidth; //图片宽度
	$image_y=40; //图片高度
	$noise_num=100*$length; //杂点数量
	$line_num=13; //干扰线数量
	$image=imagecreate($image_x,$image_y);
	$w=$h=0;//图片款高度初始化
	imagecolorallocate($image,250,250,250); //设定图片背景颜色
	//imagecolorallocate($image,0xff,0xff,0xff);//白色背景
	$rectangle_color=imagecolorallocate($image,0xAA,0xAA,0xAA); //边框颜色
	$noise_color=imagecolorallocate($image,0x00,0x00,0x00); //杂点颜色
	$font_size=18;//字体大小
	$font_y=29;//字符在Y轴上基线的位置
	$font_face='heiti.ttf'; //字体
	//加入杂点
	for($i=0;$i<$noise_num;$i++){
		imagesetpixel($image,mt_rand(0,$image_x),mt_rand(0,$image_y),$noise_color);
	}
	//生成验证码
	$x=2;
	$session_code='';
	for($i=0;$i<$length;$i++){
		$font_color=imagecolorallocate($image,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255)); //字体颜色
		$code=$randChar[mt_rand(0,count($randChar)-1)];
		imagettftext($image,$font_size,mt_rand(-6,6),$x,$font_y,$font_color,$font_face,$code);
		$x+=30;
		$session_code.=$code;
	}
	//把验证码的值存放到session中
	@session_start();
	$_SESSION['checkCode']=$session_code;
	for($i=0;$i<$line_num;$i++){ 
		$fontcolor=imagecolorallocate($image,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
		imagearc($image,mt_rand(-10,$w),mt_rand(-10,$h),mt_rand(30,300),mt_rand(20,200),55,44,$fontcolor); 
	}//www.phpernote.com/php-function/1010.html
	for($i=0;$i<255;$i++){ 
		$fontcolor=imagecolorallocate($image,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
		imagesetpixel($image,mt_rand(0,$w),mt_rand(0,$h),$fontcolor); 
	}
	imagerectangle($image,0,0,$image_x-1,$image_y-1,$rectangle_color);  //加个边框
	imagepng($image);
	imagedestroy($image);
}

汉字验证码代码下载(内含字体文件)

您可能感兴趣的文章

  • php生成动态验证码图片(gif)
  • php提取身份证号码中的生日日期以及验证是否为未成年人的函数
  • php生成验证码函数
  • php表单字段格式验证类
  • js,php正则验证是否为数字与字母的混合(6-15位)
  • php获取汉字拼音首字母的函数(真正可以使用的)
  • PHP将简体汉字转为繁体的方法
  • php利用filter函数验证邮箱、url和ip地址的方法
Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn