版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/moeryang/article/details/77531383
PHP 中文图形验证码
CI 自己带了图形验证码,嫌它简单,参考文档写一个中文图形验证码:
public function create(){
header('Content-Type: image/png');
// Create the image
$im = imagecreatetruecolor(100, 30);
// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
$rndText = "汉字";
$count = 2;
$text = "";
for($i=0;$i<$count;$i++){
$index = mt_rand(0, mb_strlen($rndText));
$text .= mb_substr($rndText,$index,1);
}
$_SESSION['code'] = $text ;
//var_dump($text);
putenv('GDFONTPATH=' . realpath('.'));
// Replace path by your own font path
$font = 'simkai.ttf';
// Add some shadow to the text
//imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
// Add the text
imagettftext($im, 20, 0, 8, 25, $black, $font, $text);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
}
1、中文图形验证码需要中文字体,字体文件可以baidu
2、字体文件可以放在php脚本的当前目录下