Heim > Artikel > Backend-Entwicklung > Die PHP-Implementierung generiert gemischten Verifizierungscode und Bildverifizierungscode und testet (Code).
Der Inhalt dieses Artikels befasst sich mit der Generierung gemischter Verifizierungscodes und Bildverifizierungscodes (Code). Ich hoffe, dass er für Sie hilfreich ist.
Generieren Sie einen gemischten Bestätigungscode und kapseln Sie ihn in eine Funktion, Dateiname: buildVerifyCode.func.php
//range('a','z')将括号中的内容作为键值生成一个索引数组 //array_merge($array1,$array2)合并两个数组中的键值,生成新索引数组 //array_flip()将括号中的内容,键名与键值对换 //array_rand($array,$length)随机取出$array中$length长度的键名作为新数组的键值,生成一个索引数组 //join('',$array)以空连接数组中的值,以数组的内容生成字符串
<?php function buildVerifyCode($type=2,$length=4){ switch ($type) { case 0: $string=join('',array_rand(range(0,9),$length)); break; case 1: $string=join('',array_rand(array_flip(array_merge(range('a','z'),range('A','Z'))),$length)); break; case 2: $string=join('',array_rand(array_flip(array_merge(range('a','z'),range('A','Z'),range(0,9))),$length)); break; } return $string; }
Testen Sie, ob der generierte Bestätigungscode korrekt ist, Dateiname: getCode. php
<?php require 'buildVerifyCode.func.php'; echo buildVerifyCode(); // $fontfiles=['msyh.ttc','msyhbd.ttc','msyhl.ttc','simsun.ttc','Sitka.ttc']; // $fontfile=$fontfiles[mt_rand(0,count($fontfiles)-1)]; // var_dump($fontfile);
Bildverifizierungscode generieren, spezifische Kommentare schreiben, wenn Sie Zeit haben, Dateiname: getVerifyCodeImg.func.php
<?php $width=100; $height=30; //创建画布,默认底色黑色,rgb0,0,0 $image=imagecreatetruecolor($width,$height); //创建白色,方便覆盖画布 $white=imagecolorallocate($image,255,255,255); //创建白色矩形覆盖原始画布 imagefilledrectangle($image,1,1,$width-2,$height-2,$white); require 'buildVerifyCode.func.php'; $type=2; $length=4; $verifyCode=buildVerifyCode($type,$length); for($i=0;$i<$length;$i++){ $color=imagecolorallocate($image,mt_rand(50,90),mt_rand(80,200),mt_rand(90,150)); $size=mt_rand(14,16); $angle=mt_rand(-15,15); $x=($i*100/5)+$size; $y=mt_rand(20,25); $fontfiles=['msyh.ttc','msyhbd.ttc','msyhl.ttc','simsun.ttc','Sitka.ttc']; $fontfile="../fonts/".$fontfiles[mt_rand(0,count($fontfiles)-1)]; $text=substr($verifyCode,$i,1); imagettftext($image,$size,$angle,$x,$y,$color,$fontfile,$text); } $pixel=120; if($pixel){ $pixelcolor=imagecolorallocate($image,mt_rand(150,170),mt_rand(100,140),mt_rand(90,160)); for($i=0;$i<$pixel;$i++){ imagesetpixel($image,mt_rand(0,$width-1),mt_rand(0,$height-1),$pixelcolor); } } $line=4; if($line){ for($i=0;$i<$line;$i++){ imageline($image,mt_rand(0,$width-1),mt_rand(0,$height-1),mt_rand(0,$width-1),mt_rand(0,$height-1),$pixelcolor); } } header('content-type:image/png'); imagepng($image); imagedestroy($image);
Verwandte Empfehlungen:
tp5-Framework Ajax fügt asynchron Daten hinzu. Code-Implementierung
Lösungsimplementierungscode für unendliche Spalten in thinkphp
Das obige ist der detaillierte Inhalt vonDie PHP-Implementierung generiert gemischten Verifizierungscode und Bildverifizierungscode und testet (Code).. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!