코드 복사 코드는 다음과 같습니다.
공용 함수 captcha(){
$font_dir = $_SERVER ["DOCUMENT_ROOT"] . "your_ttf_file.ttf"; // 글꼴 라이브러리
$img_w = 58; // 이미지 너비 설정
$img_h = 20; $font_size = 11; // 글꼴 크기
$angle_l = -10; // 왼쪽 편각
$angle_r = 10; // 오른쪽 편각
$code_str = "ABCDEFGHJKLMNPQRSTUVWXYZ36"; word_len = 4; / / 인증코드 자리수
$padding = 5; // 두 단어 사이의 공백
$margin = 2; // 왼쪽 여백
$base_line = 15; position
$base_line_offset = 2; // 기준 오프셋
$pixel_num = 3; // 노이즈 포인트의 기본 개수
$pixel_color= 8; // 총 노이즈 포인트 색상은 8개입니다. 노이즈 포인트 수는 $pixel_num*$pixel_color
$noise_font_size = 1; // 노이즈 글꼴 크기
$sessi //사용자 정의된 세션 키 이름
header("Cache-Control: no-cache, must- 재검증") ;
header("만료: 1997년 7월 26일 월요일 05:00:00 GMT");
header("Pragma: no-cache");
header("캐시 제어: private") ;
header('Content-Type: image/png');
session_start();
$word = "";
$code_str_len = strlen($code_str) - 1;
for ($i = 0; $i $word.= $code_str[rand(0, $code_str_len)]
}
$_SESSION [ $session_key] = strtolower($word);
$image = imagecreatetruecolor($img_w, $img_h);
imagefilled직사각형($image, 0, 0, $img_w - 1, $img_h - 1, imagecolorallocate($ image, mt_rand(235, 255), mt_rand(235, 255), mt_rand(235, 255)))
//노이즈 그리기
for($i = 0; $i < $pixel_color; $ i ) {
$noise_color = imagecolorallocate( $image, mt_rand(150,225), mt_rand(150,225), mt_rand(150,225) )
for($j = 0; $j < $pixel_num; $j ) {
imagestring( $image, $noise_font_size, mt_rand(-10, $img_w), mt_rand(-10, $img_h), $code_str[mt_rand(0, $code_str_len)], $noise_color )
}
}
//텍스트 그리기
for ($i = 0; $i < $word_len; $i) {
$color = imagecolorallocate($image, mt_rand(0, 100), mt_rand(20, 120), mt_rand(50, 150))
imagettftext($image, $font_size, mt_rand($angle_l, $angle_r), $margin, mt_rand($base_line-$base_line_offset, $base_line $base_line_offset ), $color, $font, mb_substr($word, $i, 1, 'utf-8'))
$margin = (imagefontwidth($font_size) $padding)
}
imagepng ($ 이미지);
imagedestroy($image)
종료
}
위 내용은 Custom Hero Survival 1.87의 내용을 포함하여 Custom Hero Survival 1.87 PHP의 고도로 사용자 정의 가능한 보안 확인 코드 코드를 소개한 것입니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.