현재 위치: > 최신 기사 목록> imageCreateTrueColor 및 imageTtfText와 함께 동적 검증 코드를 만드는 방법은 무엇입니까? 자세한 단계 소개

imageCreateTrueColor 및 imageTtfText와 함께 동적 검증 코드를 만드는 방법은 무엇입니까? 자세한 단계 소개

gitbox 2025-09-02

<span><span><span class="hljs-meta"><?php</span></span><span> </span><span><span class="hljs-comment">// 前置无关内容</span></span><span> </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"欢迎来到我的PHP练习项目!<br>"</span></span><span>; </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"今天我们将探索一些有趣的图像处理技巧。<br>"</span></span><span>; </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"希望你喜欢本教程。<br>"</span></span><span>; </span><span><span class="hljs-meta">?></span></span><span> <hr> </span><span><span class="hljs-meta"><?php</span></span><span> </span><span><span class="hljs-comment">// 正文开始</span></span><span> </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<h2>如何结合 imagecreatetruecolor 和 imagettftext 制作动态验证码?详细步骤介绍</h2>"</span></span><span>; </span><span><span class="hljs-comment">// 步骤 1:创建画布</span></span><span> </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<p><strong>步骤 1:</strong>首先我们需要创建一个画布,用于生成验证码图像。这里我们使用 <code>imagecreatetruecolor "; // 2 단계 : 배경색을 설정하십시오 에코 " 검증 코드에 대한 임의의 배경색 또는 고정 색상을 설정하십시오.

" ; 에코 "
\ $ bgcolor = imageColorAllother (\ $ image, 255, 255, 255); // 흰색 배경 ImageFilledRectangle (\ $ image, 0, 0, \ $ width, \ $ 높이, \ $ bgcolor);
"
;
// 3 단계 : 임의의 검증 코드 문자열 생성 에코 "

3 단계 : 검증 코드 내용으로 임의 문자 문자열을 생성하십시오.

"
; 에코 "
\ $ chars = &#39;abcdefghjklmnpqrstuvwxyz23456789&#39;;
\ $ captchatext = &#39;&#39;;
for (\ $ i = 0; \ $ i <5; \ $ i ++) {
    \ $ captchatext. = \ $ chars [mt_rand (0, strlen (\ $ chars) -1)];
}
"
;
// 4 단계 : 이미지에 텍스트를 쓰십시오 에코 "

4 단계 : imageTtfText를 사용하여 이미지에 텍스트를 작성하십시오. 글꼴, 크기 및 회전 각도를 설정하여 검증 코드의 어려움을 높일 수 있습니다.

"
; 에코 "
\ $ fontfile = &#39;path/to/your/font.ttf&#39;; // (\ $ i = 0; \ $ i <strlen (\ $ captchatext); \ $ i ++)의 ttf 글꼴 경로
    \ $ fontsize = 20;
    \ $ angle = mt_rand (-15, 15);
    \ $ x = 10 + \ $ i * 20;
    \ $ y = 30;
    \ $ textColor = imageColorAllother (\ $ image, mt_rand (0, 150), mt_rand (0, 150), mt_rand (0, 150));
    imageTtfText (\ $ im
}
"
;
// 5 단계 : 간섭 요소를 추가하십시오 에코 "

5 단계 : 보안을 향상 시키려면 간섭 선이나 지점을 추가하십시오.

"
; 에코 "
// (\ $ i = 0; \ $ i <5; \ $ i ++)에 대한 간섭 줄을 추가합니다.
    \ $ linecolor = imageColorAllother (\ $ image, mt_rand (100,255), mt_rand (100,255), mt_rand (100,255));
    Imageline (\ $ image, mt_rand (0, \ $ width), mt_rand (0, \ $ 높이), mt_rand (0, \ $ width), mt_rand (0, \ $ height), \ $ linecolor);
}

// (\ $ i = 0; \ $ i <100; \ $ i ++)에 대한 간섭 지점을 추가합니다.
    \ $ dotColor = imageColorAllother (\ $ image, mt_rand (0,255), mt_rand (0,255), mt_rand (0,255));
    ImagesEtpixel (\ $ image, mt_rand (0, \ $ width), mt_rand (0, \ $ height), \ $ dotColor);
}
"
;
// 6 단계 : 이미지를 출력하고 리소스를 해제합니다. 에코 "

6 단계 : 이미지를 브라우저에 출력하고 이미지 리소스를 해제합니다.

"
; 에코 "
헤더 ( &#39;내용 유형 : 이미지/png&#39;);
imagepng (\ $ image);
imageStroy (\ $ image);
"
;
에코 "

위의 단계를 통해, 우리는 양식의 보안을 향상시키기 위해 간섭 선과 무작위로 회전 된 텍스트를 갖춘 동적 인증 코드를 생성 할 수 있습니다.

"
; ?>