ホームページ  >  記事  >  バックエンド開発  >  PHP はウェブサイトに中国語の検証コードを実装します

PHP はウェブサイトに中国語の検証コードを実装します

WBOY
WBOYオリジナル
2016-06-20 13:01:421018ブラウズ

PHP は漢字検証コードを使用します。 以下は、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.scutephp.com/
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);
}


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。