Aktueller Standort: Startseite> Neueste Artikel> Wie erstelle ich dynamische Verifizierungscodes in Kombination mit ImageCrreatetRueColor und ImagettFtext? Detaillierte Schritte Einführung

Wie erstelle ich dynamische Verifizierungscodes in Kombination mit ImageCrreatetRueColor und ImagettFtext? Detaillierte Schritte Einführung

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 " // Schritt 2: Stellen Sie die Hintergrundfarbe ein Echo " Legen Sie eine zufällige Hintergrundfarbe oder eine feste Farbe für den Verifizierungscode fest.

" ; Echo "
\ $ bgcolor = imageColorAlleclocation (\ $ image, 255, 255, 255); // White Background ImagesFilledRectangle (\ $ Image, 0, 0, \ $ width, \ $ Höhe, \ $ bgcolor);
"
// Schritt 3: Generieren Sie einen zufälligen Verifizierungscodezeichenfolge Echo "

Schritt 3: Generieren Sie eine Zeichenfolge von zufälligen Zeichen als Verifizierungscodeinhalt.

"
; Echo "
\ $ chars = &#39;abcdefghjklmnpqrstuvwxyz23456789&#39;;
\ $ captchatext = &#39;&#39;;
für (\ $ i = 0; \ $ i <5; \ $ i ++) {
    \ $ captchatext. = \ $ chars [mt_rand (0, strlen (\ $ chars) - 1)];
}
"
// Schritt 4: Text auf das Bild schreiben Echo "

Schritt 4: Verwenden Sie ImagettFtext , um Text in das Bild zu schreiben. Sie können die Schrift-, Größe und den Rotationswinkel festlegen, um die Schwierigkeit des Verifizierungscode zu erhöhen.

" Echo "
\ $ fontfile = &#39;path/to/your/font.ttf&#39;; // ttf font Pfad für (\ $ i = 0; \ $ i <strlen (\ $ captchatext); \ $ i ++) {
    \ $ fontSize = 20;
    \ $ angle = mt_rand (-15, 15);
    \ $ x = 10 + \ $ i * 20;
    \ $ y = 30;
    \ $ textColor = imagebildColoralLaCecocation (\ $ image, mt_rand (0, 150), mt_rand (0, 150), mt_rand (0, 150));
    ImagettFtext (\ $ image, \ $ fontsize, \ $ angle, \ $ x, \ $ y, \ $ textColor, \ $ fontfile, \ $ captchatext [\ $ i]);
}
"
// Schritt 5: Interferenzelemente hinzufügen Echo "

Schritt 5: Um die Sicherheit zu verbessern, fügen Sie Interferenzleitungen oder Punkte hinzu.

"
; Echo "
// Interferenzlinie hinzufügen für (\ $ i = 0; \ $ i <5; \ $ i ++) {
    \ $ linecolor = imageColoralLaCate (\ $ image, mt_rand (100,255), mt_rand (100,255), mt_rand (100,255));
    Bildlinie (\ $ image, mt_rand (0, \ $ width), mt_rand (0, \ $ height), mt_rand (0, \ $ width), mt_rand (0, \ $ Höhe), \ $ linecolor);
}

// Interferenzpunkt für (\ $ i = 0; \ $ i <100; \ $ i ++) {
    \ $ dotcolor = imageColorAlleclocation (\ $ image, mt_rand (0,255), mt_rand (0,255), MT_RAND (0,255));
    Imagesetpixel (\ $ image, mt_rand (0, \ $ width), mt_rand (0, \ $ hohe), \ $ dotcolor);
}
"
// Schritt 6: Ausgabe des Bildes und die Ressource freigeben Echo "

Schritt 6: das Bild in den Browser ausgeben und die Bildressourcen freigeben.

"
; Echo "
Header (&#39;Inhaltstyp: Bild/PNG&#39;);
ImagePng (\ $ image);
ImagedStroy (\ $ image);
"
;
Echo "

Durch die obigen Schritte können wir einen dynamischen Verifizierungscode mit Interferenzleitungen und zufällig gedrehten Text erzeugen, um die Sicherheit des Formulars zu verbessern.

" ?>