2.准备中文

3.把中文写入到画布

imagettftext:须要一个字体作为参数

php中文验证码后台人员必需要会的PHP中文验证码制造技巧 Python

4.输出或者保存

5.销毁画布资源

前台与后台的差异?

前台是指的用户去访问的界面,项目为用户访问所写的那些代码;后台是用于管理员管理的那部分代码。
从区分用户的角度出发。

前端与后真个差异?

前端指的是那些html+css+js,后端指的是做事器真个脚本,如PHP等,从事情内容的角度出发。

美工和程序员的差异?美工做前端,程序员做后端

前台和后台都须要美工和程序员。

代码见demo01_chinisecaptcha.php

<?php

//header('Content-type:text/html;charset=utf-8');

//中文验证码

//准备好须要制作验证码的中笔墨符(多放字符,这里我只放了几个)

$str=\"大众的一是在了反面有大这主中人上为们地个用工时要动国产以\"大众;

//准备画布

$im = imagecreatetruecolor(400,200);

//给画布上色

$bg = imagecolorallocate($im,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));

imagefill($im,0,0,$bg);

//得到要写入的字符串(中文)

//你好天下

//0 1 2 3 4 5 6 7 8 9 10 11

//1. 获取字符串长度

$len = strlen($str);

//声明$last

//$last = '';

for($i = 0 ;$i < 4;$i++){

//2. 得到随机的字节的位置

$rand = mt_rand(0,$len - 1);

//3. 判断得到的字节的位置

if($rand%3 == 0){

//所在位置为汉字的起始位置

$last = substr($str,$rand,3); //====== $last = $last . substr($str,$rand,3)

}elseif($rand%3 == 1){

//所在位置的前一位是汉字的起始位置

$last = substr($str,$rand - 1,3);

}elseif($rand%3 == 2){

//所在位置的前两位是汉字的起始位置

$last = substr($str,$rand - 2,3);

}

//echo $last;

//把笔墨写入到画布上

//笔墨上色

$text_color = imagecolorallocate($im,mt_rand(50,150),mt_rand(50,150),mt_rand(50,150));

//得到每个汉字的一个随机位置,横坐标上是顺移,纵坐标随机

switch($i){

case 0:

$width = 50;

break;

case 1:

$width = 150;

break;

case 2:

$width = 250;

break;

case 3:

$width = 350;

break;

}

//imagestring

//imagestring($im,5,200,100,$last,$text_color);

//把稳:imagettftext只能写utf-8格式的中文,如果当前文件的字符集不是utf-8,须要利用iconv函数先将字符转成utf-8格式再写

imagettftext($im,30,mt_rand(0,360),$width,mt_rand(50,150),$text_color,'STHUPO.TTF',$last);

}

//输出图片

header('Content-type:image/png');

imagepng($im);

//销毁图片资源

imagedestroy($im);